예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }