public void TestCalculateCartesianDistance(double x1, double y1, double x2, double y2, double expectedDistance) { var point1 = new Point(x1, y1); var point2 = new Point(x2, y2); var geometryUtilities = new GeometryUtilities(); var distance = geometryUtilities.CalculateCartesianDistance(point1, point2); Assert.LessOrEqual(Math.Abs(distance - expectedDistance), Epsilon); }
public void TestGetVertices(int numSides, int sideLength) { var geometryUtilities = new GeometryUtilities(); var polygon = new RegularPolygon(numSides, sideLength, new Point(0, 0), new Angle(0, MeasurementType.Radians)); var actualPoints = polygon.Vertices.ToArray(); var expectedPoints = numSidesToPointOrientationDictionary[numSides].ToArray(); Assert.AreEqual(expectedPoints.Length, actualPoints.Length); for (int i = 0; i < actualPoints.Length; i++) { Assert.LessOrEqual(Math.Abs(expectedPoints[0].Radians - actualPoints[0].Theta.Radians), Epsilon); Assert.LessOrEqual( Math.Abs(geometryUtilities.CalculateCartesianDistance(actualPoints[i], actualPoints[(i + 1) % numSides]) - 2), Epsilon ); Assert.LessOrEqual( Math.Abs(actualPoints[i].R - (double)sideLength / (2 * Math.Sin(Math.PI / (double)numSides))), Epsilon ); } }