RectangleExtensionsTests.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using Microsoft.Xna.Framework;
  2. namespace MonoGame.Extended.Tests
  3. {
  4. public class RectangleExtensionsTests
  5. {
  6. [Fact]
  7. public void Clip_ReturnsIntersectionRectangle()
  8. {
  9. var rect = new Rectangle(0, 0, 10, 10);
  10. var clip1 = new Rectangle(2, 2, 5, 5);
  11. var clip2 = new Rectangle(2, 2, 15, 15);
  12. var clip3 = new Rectangle(-2, -2, 5, 5);
  13. Assert.Equal(new Rectangle(2, 2, 5, 5), rect.Clip(clip1));
  14. Assert.Equal(new Rectangle(2, 2, 8, 8), rect.Clip(clip2));
  15. Assert.Equal(new Rectangle(0, 0, 3, 3), rect.Clip(clip3));
  16. }
  17. [Fact]
  18. public void Normalize_WithNegativeWidthAndHeight_AdjustsPositionAndMakesDimensionsPositive()
  19. {
  20. Rectangle rectangle = new Rectangle(32, 32, -32, -32);
  21. Rectangle actual = RectangleExtensions.Normalize(rectangle);
  22. Rectangle expected = new Rectangle(0, 0, 32, 32);
  23. Assert.Equal(expected, actual);
  24. }
  25. [Fact]
  26. public void Normalize_WithNegativeWidthOnly_AdjustsXAndMakesWidthPositive()
  27. {
  28. Rectangle rectangle = new Rectangle(100, 50, -20, 30);
  29. Rectangle actual = RectangleExtensions.Normalize(rectangle);
  30. Rectangle expected = new Rectangle(80, 50, 20, 30);
  31. Assert.Equal(expected, actual);
  32. }
  33. [Fact]
  34. public void Normalize_WithNegativeHeightOnly_AdjustsYAndMakesHeightPositive()
  35. {
  36. Rectangle rectangle = new Rectangle(50, 100, 30, -20);
  37. Rectangle actual = RectangleExtensions.Normalize(rectangle);
  38. Rectangle expected = new Rectangle(50, 80, 30, 20);
  39. Assert.Equal(expected, actual);
  40. }
  41. [Fact]
  42. public void Normalize_WithPositiveDimensions_DoesNotModifyRectangle()
  43. {
  44. Rectangle rectangle = new Rectangle(10, 20, 30, 40);
  45. Rectangle actual = RectangleExtensions.Normalize(rectangle);
  46. Rectangle expected = new Rectangle(10, 20, 30, 40);
  47. Assert.Equal(expected, actual);
  48. }
  49. [Fact]
  50. public void Normalize_StaticMethod_ReturnsNormalizedRectangle()
  51. {
  52. Rectangle rectangle = new Rectangle(32, 32, -32, -32);
  53. Rectangle actual = RectangleExtensions.Normalize(rectangle);
  54. Rectangle expected = new Rectangle(0, 0, 32, 32);
  55. Assert.Equal(expected, actual);
  56. }
  57. [Fact]
  58. public void Normalize_RefOutMethod_OutputsNormalizedRectangle()
  59. {
  60. Rectangle rectangle = new Rectangle(32, 32, -32, -32);
  61. RectangleExtensions.Normalize(ref rectangle, out Rectangle actual);
  62. Rectangle expected = new Rectangle(0, 0, 32, 32);
  63. Assert.Equal(expected, actual);
  64. }
  65. }
  66. }