public void TestOrbitPositionsOnRotation() { Time.Reset(); var center = new FixedLocation(100, 100); var orbit = new OrbitLocation(center, new FixedLocation(200, 100), halfPI); Assert.AreEqual(200, orbit.X); Assert.AreEqual(100, orbit.Y); Time.Increment(); Assert.AreEqual(100, orbit.X); Assert.AreEqual(0, orbit.Y); Time.Increment(); Assert.AreEqual(0, orbit.X); Assert.AreEqual(100, orbit.Y); Time.Increment(); Assert.AreEqual(100, orbit.X); Assert.AreEqual(200, orbit.Y); }
public void TestEqualDistanceOnSameRotation() { Time.Reset(); var center = FixedLocation.Zero; var rotation = halfPI / 100.0d; var orbit1 = new OrbitLocation(center, new FixedLocation(200000, 200000), rotation); var orbit2 = new OrbitLocation(center, new FixedLocation(-500000, 1000000), rotation); var distance = Distance.Calculate(orbit1, orbit2); for (int n = 0; n < 400; n++) { Time.Increment(); var difference = Math.Abs(distance - Distance.Calculate(orbit1, orbit2)); Assert.LessOrEqual(difference, 10.0d); } }