CoordinatesCalculatorTests.cs 1.7 KB

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