RotateTests.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. namespace QuestPDF.LayoutTests;
  2. public class RotateTests
  3. {
  4. [Test]
  5. public void SimpleRotation()
  6. {
  7. const float angle = 60;
  8. const float armLength = 100;
  9. var expectedX = armLength * MathF.Cos(float.DegreesToRadians(angle));
  10. var expectedY = armLength * MathF.Sin(float.DegreesToRadians(angle));
  11. Assert.That(expectedX, Is.EqualTo(50).Within(0.1f));
  12. Assert.That(expectedY, Is.EqualTo(86.6).Within(0.1f));
  13. LayoutTest
  14. .HavingSpaceOfSize(500, 500)
  15. .ForContent(content =>
  16. {
  17. content
  18. .Shrink()
  19. .Rotate(angle)
  20. .TranslateX(armLength)
  21. .Mock("a")
  22. .SolidBlock(100, 100);
  23. })
  24. .ExpectDrawResult(document =>
  25. {
  26. document
  27. .Page()
  28. .RequiredAreaSize(100, 100)
  29. .Content(page =>
  30. {
  31. page.Mock("a").Position(expectedX, expectedY).Size(100, 100);
  32. });
  33. });
  34. }
  35. }