CoordinatesCalculatorTests.cs 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using PixiEditor.Models.Position;
  2. using System.Linq;
  3. using Xunit;
  4. namespace PixiEditorTests.ModelsTests.PositionTests
  5. {
  6. public class CoordinatesCalculatorTests
  7. {
  8. [Theory]
  9. [InlineData(0, 0, 2, 2, 9)]
  10. [InlineData(0, 0, 10, 10, 121)]
  11. public void TestThatRectangleToCoordinatesReturnsSameAmount(int x1, int y1, int x2, int y2, int expectedResult)
  12. {
  13. Assert.Equal(CoordinatesCalculator.RectangleToCoordinates(x1, y1, x2, y2).Count(), expectedResult);
  14. }
  15. [Fact]
  16. public void CalculateSquareEvenThicknessCenterTest()
  17. {
  18. DoubleCords cords = CoordinatesCalculator.CalculateThicknessCenter(new Coordinates(3, 3), 4);
  19. Assert.Equal(1, cords.Coords1.X);
  20. Assert.Equal(1, cords.Coords1.Y);
  21. Assert.Equal(4, cords.Coords2.X);
  22. Assert.Equal(4, cords.Coords2.Y);
  23. }
  24. [Fact]
  25. public void CalculateSquareOddThicknessCenterTest()
  26. {
  27. DoubleCords cords = CoordinatesCalculator.CalculateThicknessCenter(new Coordinates(3, 3), 3);
  28. Assert.Equal(2, cords.Coords1.X);
  29. Assert.Equal(2, cords.Coords1.Y);
  30. Assert.Equal(4, cords.Coords2.X);
  31. Assert.Equal(4, cords.Coords2.Y);
  32. }
  33. [Theory]
  34. [InlineData(0, 0, 3, 3, 1, 1)]
  35. [InlineData(0, 0, 2, 2, 1, 1)]
  36. [InlineData(5, 5, 7, 7, 6, 6)]
  37. [InlineData(5, 5, 9, 9, 7, 7)]
  38. public void TestGetCenter(int x1, int y1, int x2, int y2, int expectedX, int expectedY)
  39. {
  40. Coordinates center = CoordinatesCalculator.GetCenterPoint(new Coordinates(x1, y1), new Coordinates(x2, y2));
  41. Assert.Equal(new Coordinates(expectedX, expectedY), center);
  42. }
  43. }
  44. }