LineNodeTests.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System.Collections.Generic;
  2. using Avalonia.Media;
  3. using Avalonia.Rendering.SceneGraph;
  4. using Xunit;
  5. namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
  6. {
  7. public class LineNodeTests
  8. {
  9. [Fact]
  10. public void HitTest_Should_Be_True()
  11. {
  12. var lineNode = new LineNode(
  13. Matrix.Identity,
  14. new Pen(Brushes.Black, 3),
  15. new Point(15, 10),
  16. new Point(150, 73));
  17. var pointsInside = new List<Point>()
  18. {
  19. new Point(14, 8.9),
  20. new Point(15, 10),
  21. new Point(30, 15.5),
  22. new Point(30, 18.5),
  23. new Point(150, 73),
  24. new Point(151, 71.9),
  25. };
  26. foreach (var point in pointsInside)
  27. {
  28. Assert.True(lineNode.HitTest(point));
  29. }
  30. }
  31. [Fact]
  32. public void HitTest_Should_Be_False()
  33. {
  34. var lineNode = new LineNode(
  35. Matrix.Identity,
  36. new Pen(Brushes.Black, 3),
  37. new Point(15, 10),
  38. new Point(150, 73));
  39. var pointsOutside = new List<Point>()
  40. {
  41. new Point(14, 8),
  42. new Point(14, 8.8),
  43. new Point(30, 15.3),
  44. new Point(30, 18.7),
  45. new Point(151, 71.8),
  46. new Point(155, 75),
  47. };
  48. foreach (var point in pointsOutside)
  49. {
  50. Assert.False(lineNode.HitTest(point));
  51. }
  52. }
  53. }
  54. }