TableBenchmark.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. using System.Linq;
  2. using NUnit.Framework;
  3. using QuestPDF.Examples.Engine;
  4. using QuestPDF.Fluent;
  5. using QuestPDF.Helpers;
  6. namespace QuestPDF.Examples
  7. {
  8. public class TableBenchmark
  9. {
  10. [Test]
  11. [Ignore("This test takes a lot of time to run")]
  12. public void Benchmark()
  13. {
  14. RenderingTest
  15. .Create()
  16. .ProducePdf()
  17. .PageSize(PageSizes.A4)
  18. .ShowResults()
  19. .MaxPages(10_000)
  20. .EnableCaching(true)
  21. .EnableDebugging(false)
  22. .Render(container =>
  23. {
  24. container
  25. .Padding(10)
  26. .MinimalBox()
  27. .Border(1)
  28. .Table(table =>
  29. {
  30. const int numberOfRows = 100_000;
  31. const int numberOfColumns = 10;
  32. table.ColumnsDefinition(columns =>
  33. {
  34. foreach (var _ in Enumerable.Range(0, numberOfColumns))
  35. columns.RelativeColumn();
  36. });
  37. foreach (var row in Enumerable.Range(0, numberOfRows))
  38. foreach (var column in Enumerable.Range(0, numberOfColumns))
  39. table.Cell().Background(Placeholders.BackgroundColor()).Padding(5).Text($"{row}_{column}");
  40. });
  41. });
  42. }
  43. }
  44. }