public void ComputeArea_ReturnsAreaOfConvexPolygon() { Coordinate[] coordinates = new Coordinate[] { new Coordinate(1, 1), new Coordinate(2, 0.5), new Coordinate(3, 1), new Coordinate(3, 2), new Coordinate(1, 2) }; double expectedArea = 2.5; Mock<ICoordinateList> listM = new Mock<ICoordinateList>(); listM.SetupGet(list => list.Count).Returns(5); listM.Setup(list => list[0]).Returns(coordinates[0]); listM.Setup(list => list[1]).Returns(coordinates[1]); listM.Setup(list => list[2]).Returns(coordinates[2]); listM.Setup(list => list[3]).Returns(coordinates[3]); listM.Setup(list => list[4]).Returns(coordinates[4]); Euclidean2DCalculator target = new Euclidean2DCalculator(); double area = target.CalculateArea(listM.Object); Assert.Equal(expectedArea, area); }
public void ComputeDistance_CoordinateLineLineSegmentMode_ReturnsPointDistanceIfABAreEquals() { Coordinate A = new Coordinate(1, 1); Coordinate B = new Coordinate(1, 1); Coordinate c = new Coordinate(1, 2); Euclidean2DCalculator target = new Euclidean2DCalculator(); double distance = target.CalculateDistance(c, A, B, LineMode.LineSegment); Assert.Equal(1, distance); }
public void ComputeDistance_CoordinateLineLineSegmentMode_ReturnsZeroIfPointLiesOnLineSegment(Coordinate c, Coordinate A, Coordinate B) { Euclidean2DCalculator target = new Euclidean2DCalculator(); double distance = target.CalculateDistance(c, A, B, LineMode.LineSegment); Assert.Equal(0, distance); }
public void ComputeDistance_CoordinateLineLineSegmentMode_ComputesPerpendicularDistanceToLineIfPointsProjectionLiesInside(Coordinate c, Coordinate A, Coordinate B, double expectedDistance) { Euclidean2DCalculator target = new Euclidean2DCalculator(); double distance = target.CalculateDistance(c, A, B, LineMode.LineSegment); Assert.Equal(expectedDistance, distance); }
public void ComputeDistance_CoordinateLineLineSegmentMode_ReturnsDistanceToEndPointsIfPointsProjectionLiesOutsideSegment() { Coordinate A = new Coordinate(1, 1); Coordinate B = new Coordinate(-1, -1); Coordinate c1 = new Coordinate(1,2); Coordinate c2 = new Coordinate(-1,-2); Euclidean2DCalculator target = new Euclidean2DCalculator(); double distanceC1 = target.CalculateDistance(c1, A, B, LineMode.LineSegment); Assert.Equal(1, distanceC1); double distanceC2 = target.CalculateDistance(c2, A, B, LineMode.LineSegment); Assert.Equal(1, distanceC2); }
public void ComputeDistance_CoordinateCoordinate_ReturnsZeroForPointsWithSameXYCoordinates(Coordinate c1, Coordinate c2) { Euclidean2DCalculator target = new Euclidean2DCalculator(); double distance = target.CalculateDistance(c1, c2); Assert.Equal(0, distance); }
public void ComputeDistance_CoordinateCoordinate_ReturnsDistanceBetweenCoordinates(Coordinate c1, Coordinate c2, double expectedDistance) { Euclidean2DCalculator target = new Euclidean2DCalculator(); double distance = target.CalculateDistance(c1, c2); Assert.Equal(expectedDistance, distance); }
public void ComputeDistance_CoordinateCoordinate_IgnoresZOrdinate() { Euclidean2DCalculator target = new Euclidean2DCalculator(); double distance = target.CalculateDistance(new Coordinate(-1, 0, 100), new Coordinate(1, 0, -100)); Assert.Equal(2, distance); }
public void ComputeArea_ThrowsExceptionIfNumberOfVerticesIsLesserThen3() { Mock<ICoordinateList> listM = new Mock<ICoordinateList>(); listM.SetupGet(l => l.Count).Returns(2); Euclidean2DCalculator target = new Euclidean2DCalculator(); Assert.Throws<ArgumentException>(() => target.CalculateArea(listM.Object)); }
public void ComputeArea_ReturnsCorrectAreaIfLastCoordinateIsSameAsFirst() { Coordinate[] coordinates = new Coordinate[] { new Coordinate(1, 1), new Coordinate(2, 0.5), new Coordinate(3, 1), new Coordinate(3, 2), new Coordinate(1, 2), new Coordinate(1, 1) }; double expectedArea = 2.5; Mock<ICoordinateList> listM = new Mock<ICoordinateList>(); listM.SetupGet(list => list.Count).Returns(6); listM.Setup(list => list[0]).Returns(coordinates[0]); listM.Setup(list => list[1]).Returns(coordinates[1]); listM.Setup(list => list[2]).Returns(coordinates[2]); listM.Setup(list => list[3]).Returns(coordinates[3]); listM.Setup(list => list[4]).Returns(coordinates[4]); listM.Setup(list => list[5]).Returns(coordinates[5]); Euclidean2DCalculator target = new Euclidean2DCalculator(); double area = target.CalculateArea(listM.Object); Assert.Equal(expectedArea, area); }