public void TestCalcTargetDistanceCircleToCircle() { Circle circle1; Circle circle2; Clothoid clt; circle1 = new Circle(4, 4, 3); circle2 = new Circle(5.5, 4, 1.25); Assert.That(Clothoid.Connect(circle1, circle2, Tol, out clt) == 0); Assert.AreEqual(circle1.Center.DistanceTo(circle2.Center), Clothoid.CalcTargetDistance(circle1.Radius, circle2.Radius, clt.Length), Tol); circle1 = new Circle(4, 4, -3); circle2 = new Circle(5.5, 4, -1.25); Assert.That(Clothoid.Connect(circle1, circle2, Tol, out clt) == 0); Assert.AreEqual(circle1.Center.DistanceTo(circle2.Center), Clothoid.CalcTargetDistance(circle1.Radius, circle2.Radius, clt.Length), Tol); // Reversed connection circle1 = new Circle(4, 4, 3); circle2 = new Circle(8.5, 4, -1.25); Assert.That(Clothoid.Connect(circle1, circle2, Tol, out clt) == 0); Assert.AreEqual(circle1.Center.DistanceTo(circle2.Center), Clothoid.CalcTargetDistance(circle1.Radius, circle2.Radius, clt.Length), Tol); circle1 = new Circle(4, 4, -3); circle2 = new Circle(8.5, 4, 1.25); Assert.That(Clothoid.Connect(circle1, circle2, Tol, out clt) == 0); Assert.AreEqual(circle1.Center.DistanceTo(circle2.Center), Clothoid.CalcTargetDistance(circle1.Radius, circle2.Radius, clt.Length), Tol); }
public void TestCalcTargetDistanceLineToCircle() { Line line; Circle circle; Clothoid clt; line = new Line(0, 0, 1, 0); circle = new Circle(4, 4, 3.8); Assert.That(Clothoid.Connect(line, circle, true, Tol, out clt) == 0); Assert.AreEqual(line.DistanceTo(circle.Center), Clothoid.CalcTargetDistance(circle.Radius, clt.Length), Tol); line = new Line(0, 0, 1, 0); circle = new Circle(4, -4, -3.8); Assert.That(Clothoid.Connect(line, circle, true, Tol, out clt) == 0); Assert.AreEqual(line.DistanceTo(circle.Center), Clothoid.CalcTargetDistance(circle.Radius, clt.Length), Tol); }