コード例 #1
0
        public void DistanceTest()
        {
            //Test 1
            MathCalcUtility utility = new MathCalcUtility ();
            Vector<double> coordinate1 = utility.CalculateCoordinate (0, 1, 5000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (0, 0, 5000);

            double distance = utility.Distance (coordinate1, coordinate2);

            Assert.That (60.1, Is.LessThan (distance));
            //Assert.AreEqual (111.405, distance);
            Assert.That (60.2, Is.GreaterThan(distance));
            //Test 2
            coordinate1 = utility.CalculateCoordinate (10, 1, 5000);
            coordinate2 = utility.CalculateCoordinate (10, 0, 5000);

            distance = utility.Distance (coordinate1, coordinate2);

            //Assert.AreEqual (109.724, distance);
            Assert.That (59.2, Is.LessThan (distance));
            Assert.That (59.3, Is.GreaterThan (distance));
            //Test 3
            coordinate1 = utility.CalculateCoordinate (70, 1, 5000);
            coordinate2 = utility.CalculateCoordinate (70, 0, 5000);

            distance = utility.Distance (coordinate1, coordinate2);

            //Assert.AreEqual (38.215, distance); //works
            Assert.That (20.6, Is.LessThan (distance));
            Assert.That (20.7, Is.GreaterThan (distance));
        }
コード例 #2
0
        public void DistanceTest()
        {
            //Test 1
            MathCalcUtility utility = new MathCalcUtility ();
            Vector<double> coordinate1 = utility.CalculateCoordinate (0, 1, 5000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (0, 0, 5000);

            double distance = utility.Distance (coordinate1, coordinate2);

            Assert.AreEqual (111.405, distance);

            //Test 2
            coordinate1 = utility.CalculateCoordinate (10, 1, 5000);
            coordinate2 = utility.CalculateCoordinate (10, 0, 5000);

            distance = utility.Distance (coordinate1, coordinate2);

            Assert.AreEqual (109.724, distance); //109.274 was the test before that was failing, is this correct?

            //Test 3
            coordinate1 = utility.CalculateCoordinate (70, 1, 5000);
            coordinate2 = utility.CalculateCoordinate (70, 0, 5000);

            distance = utility.Distance (coordinate1, coordinate2);

            Assert.AreEqual (38.215, distance); //works
        }
コード例 #3
0
ファイル: Distances.cs プロジェクト: dsteeve/teamDrei-4250
        public void DistanceCalc1()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (39.960210,-90.039798,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40.039793,-89.960214,3397);

            double distance = utility.Distance (coordinate1, coordinate2); //7km
            Console.WriteLine (distance);
            Assert.That (Math.Abs(6.02 - distance) <= .01);
        }
コード例 #4
0
ファイル: Distances.cs プロジェクト: dsteeve/teamDrei-4250
        public void DistanceCalc2()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (39.960418,-90.039589,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40.039585,-89.960423,3395);

            double distance = utility.Distance (coordinate1, coordinate2);
            Console.WriteLine (distance);
            Assert.That (Math.Abs(5.99 - distance) <= .01);
        }
コード例 #5
0
ファイル: Distances.cs プロジェクト: dsteeve/teamDrei-4250
        public void DistanceCalc4()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (39.960627,-90.039381,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40.039168,-89.960840,3391);

            double distance = utility.Distance (coordinate1, coordinate2);
            Console.WriteLine (distance);
            Assert.That (Math.Abs(5.94 - distance) <= .01);
        }
コード例 #6
0
        public void DistancePersonalAlt()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40,-89,10000);

            double distance = utility.Distance (coordinate1, coordinate2); //
            Console.WriteLine("distance personalAlt: " + distance);
            Assert.That (1.15, Is.LessThan(distance));
            Assert.That (1.16, Is.GreaterThan (distance));
        }
コード例 #7
0
        public void DistancePersonalAlt()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40,-89,10000);

            double distance = utility.Distance (coordinate1, coordinate2); //7km
            distance *= 0.539956804;
            Assert.AreEqual (3.779697628, distance);

            //	Assert.AreEqual (true, rh.AircraftDidEnterRadarRangeEvent (them));
        }
コード例 #8
0
        public void DistancePersonalLat()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40.037919,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (39.962085,-89,3000);

            double distance = utility.Distance (coordinate1, coordinate2);
            Console.WriteLine("distance personalAlt: " + distance);

            Assert.That (4.54, Is.LessThan(distance));
            Assert.That (4.55, Is.GreaterThan (distance));
        }
コード例 #9
0
        public void FasterAircraftInFront()
        {
            IMathCalcUtility mathUtil = new MathCalcUtility ();

            Aircraft fasterAircraft = new Aircraft ("1", Vector<double>.Build.DenseOfArray(new double[3]{5, 0, 0}));
            fasterAircraft.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{5, 0, 0}));

            Aircraft thisAircraft = new Aircraft ("2", Vector<double>.Build.DenseOfArray(new double[3]{1, 0, 0}));
            thisAircraft.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{1, 0, 0}));

            double intersection = mathUtil.Intersection (fasterAircraft, thisAircraft, 1);

            Assert.AreEqual (-1.0, intersection); //should be no intersection
        }
コード例 #10
0
        public void FasterAircraftCollision()
        {
            IMathCalcUtility mathUtil = new MathCalcUtility ();

            Aircraft fasterAircraft = new Aircraft ("1", Vector<double>.Build.DenseOfArray(new double[3]{-5, 0, 0}));
            fasterAircraft.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{50, 0, 0}));

            Aircraft thisAircraft = new Aircraft ("2", Vector<double>.Build.DenseOfArray(new double[3]{1, 0, 0}));
            thisAircraft.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{0, 0, 0}));

            double intersection = mathUtil.Intersection (thisAircraft, fasterAircraft, 1);

            Assert.AreEqual (Math.Sign(1), Math.Sign(intersection)); //should be an intersection //
        }
コード例 #11
0
ファイル: Distances.cs プロジェクト: Zeroff/teamDrei-4250
        public void line52_53()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (39.960627,-90.039381,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40.039168,-89.960840,3391);

            double distance = utility.Distance (coordinate1, coordinate2); //7km
            distance *= 0.539956804;
            Console.WriteLine (distance);
            Assert.That (5.47, Is.LessThanOrEqualTo(distance));
            //distance is greater than 59.9 nm

            //	Assert.AreEqual (true, rh.AircraftDidEnterRadarRangeEvent (them));
        }
コード例 #12
0
        public void NoMovementAtAllTest()
        {
            IMathCalcUtility mathUtil = new MathCalcUtility ();
            Aircraft tetheredBalloon = new Aircraft ("1", Vector<double>.Build.DenseOfArray(new double[3]{0, 0, 0}));
            tetheredBalloon.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{0, 0, 0}));

            Aircraft thisAircraft = new Aircraft ("2", Vector<double>.Build.DenseOfArray(new double[3]{1, 0, 0}));
            thisAircraft.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{1, 0, 0}));

            double intersection = mathUtil.Intersection (tetheredBalloon, thisAircraft, 1);

            Assert.AreEqual (-1.0, intersection); //should be no intersection since tetheredBalloon isn't moving

            thisAircraft.Velocity = Vector<double>.Build.DenseOfArray (new double[3]{ 1, 2, 0 });
            intersection = mathUtil.Intersection (tetheredBalloon, thisAircraft, 1);

            Assert.AreEqual (-1.0, intersection); //still no intersection after thisAircraft changed course
        }
コード例 #13
0
        public void StopMovementTest()
        {
            IMathCalcUtility mathUtil = new MathCalcUtility ();
            Aircraft stoppingAircraft = new Aircraft ("1", Vector<double>.Build.DenseOfArray(new double[3]{-5, 0, 0}));
            stoppingAircraft.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{50, 0, 0}));

            Aircraft thisAircraft = new Aircraft ("2", Vector<double>.Build.DenseOfArray(new double[3]{1, 0, 0}));
            thisAircraft.DataBuffer.Add(Vector<double>.Build.DenseOfArray(new double[3]{0, 0, 0}));

            double intersection = mathUtil.Intersection (thisAircraft, stoppingAircraft, 1);

            Assert.AreEqual (Math.Sign(1), Math.Sign(intersection)); //On collision course

            stoppingAircraft.Velocity = Vector<double>.Build.DenseOfArray (new double[3]{ 0, 0, 0 });
            // stoppingAircraft has stopped moving completely
            intersection = mathUtil.Intersection (stoppingAircraft, thisAircraft, 1);

            Assert.AreEqual (Math.Sign(1), Math.Sign(intersection)); //Still collision

            thisAircraft.Velocity = Vector<double>.Build.DenseOfArray (new double[3]{ 1, -10, 0 });
            intersection = mathUtil.Intersection (stoppingAircraft, thisAircraft, 1);

            Assert.AreEqual (-1.0, intersection); //No intersection after thisAircraft changed course
        }
コード例 #14
0
        public void IntersectionTest()
        {
            //Test1
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> plane1DataFrom = Vector<double>.Build.DenseOfArray(new double[3]{0, -1, 0});
            Vector<double> plane1DataTo = Vector<double>.Build.DenseOfArray(new double[3]{1, 0, 0});

            Vector<double> plane2DataFrom = Vector<double>.Build.DenseOfArray(new double[3]{6, -1, 0});
            Vector<double> plane2DataTo = Vector<double>.Build.DenseOfArray(new double[3]{5, 0, 0});

            Vector<double> plane1vec = utility.CalculateVector (plane1DataFrom, plane1DataTo);
            Vector<double> plane2vec = utility.CalculateVector (plane2DataFrom, plane2DataTo);

            Aircraft aircraft1 = new Aircraft ("1", plane1vec);
            aircraft1.DataBuffer.Add (plane1DataTo);

            Aircraft aircraft2 = new Aircraft ("2", plane2vec);
            aircraft2.DataBuffer.Add (plane2DataTo);

            double time = utility.Intersection (aircraft1, aircraft2, 0);

            Assert.AreEqual (2.0, time);
        }
コード例 #15
0
        public void CalculateVectorTest()
        {
            //Logical data test
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> data1 = Vector<double>.Build.DenseOfArray(new double[3]{1, 2, 3});
            Vector<double> data2 = Vector<double>.Build.DenseOfArray(new double[3]{3, 5, 4});

            Vector<double> vec = utility.CalculateVector (data1, data2);

            Assert.AreEqual (2.0, vec[0]);
            Assert.AreEqual (3.0, vec[1]);
            Assert.AreEqual (1.0, vec [2]);

            //Real data test
            data1 = Vector<double>.Build.DenseOfArray(new double[3]{51.5033630, -0.1276250, 500});
            data2 = Vector<double>.Build.DenseOfArray(new double[3]{51.5033635, -0.1276255, 510});

            vec = utility.CalculateVector (data1, data2);

            Assert.AreEqual (0.0000005, vec[0]);
            Assert.AreEqual (-0.0000005, vec[1]);
            Assert.AreEqual (10.0, vec [2]);
        }
コード例 #16
0
        public void DistancePersonalLat()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40.037919,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (39.962085,-89,3000);

            double distance = utility.Distance (coordinate1, coordinate2);//8.424km
            distance *= 0.539956804;

            double difference = Math.Abs(distance * .00001);

            // had to do it this way because a straight comparison was not working
            Assert.That(Math.Abs(distance -  4.548596116896),  Is.LessThanOrEqualTo(difference), "greater than");
        }
コード例 #17
0
        public void LLAtoECEFtest()
        {
            MathCalcUtility utility = new MathCalcUtility ();
            Vector<double> result = utility.CalculateCoordinate (34.0522, -118.40806, 0);

            Assert.AreEqual (-1358.9179, result[0]);
            Assert.AreEqual (-2512.4215, result[1]);
            Assert.AreEqual (1917.5196, result[2]);

            Vector<double> result2 = utility.CalculateCoordinate (100, 100, 100);

            Assert.AreEqual (104.1874, result2 [0]);
            Assert.AreEqual (-590.8755, result2 [1]);
            Assert.AreEqual (3379.937, result2 [2]);
        }
コード例 #18
0
        public void LLAtoECEFtest()
        {
            MathCalcUtility utility = new MathCalcUtility ();
            Vector<double> result = utility.CalculateCoordinate (34.0522, -118.40806, 0);

            Assert.AreEqual (-1358.9179, result[0]);
            Assert.AreEqual (-2512.4215, result[1]);
            Assert.AreEqual (1917.5196, result[2]);

            Vector<double> result2 = utility.CalculateCoordinate (100, 100, 100);

            Assert.AreEqual (104.1863, result2 [0]);
            Assert.AreEqual (-590.8690, result2 [1]);
            Assert.That (3379.9002, Is.LessThan (result2 [2]));
            Assert.That (3379.91, Is.GreaterThan (result2 [2]));
        }
コード例 #19
0
		public DataProcessor ()
		{
			Intruders = new List<Aircraft> ();
			ThisAircraft = new Aircraft ("B1E24F", Vector<double>.Build.Dense(3)); //Vector in R^3
			MathUtility = new MathCalcUtility();
		}
コード例 #20
0
        public void DistancePersonalRandom()
        {
            //distance is around  59.9 nm
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (41,-89,3000);

            double distance = utility.Distance (coordinate1, coordinate2);
            Console.WriteLine (distance);
            Console.WriteLine("distance personalRand: " + distance);
            Assert.That (59.96, Is.LessThanOrEqualTo(distance));
            Assert.That (59.97, Is.GreaterThanOrEqualTo(distance));
        }
コード例 #21
0
        public void DistancePersonalRandom()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (41,-89,3000);

            double distance = utility.Distance (coordinate1, coordinate2); //7km
            distance *= 0.539956804;
            Console.WriteLine (distance);
            Assert.That (59.9, Is.LessThanOrEqualTo(distance));
            //distance is greater than 59.9 nm

            //	Assert.AreEqual (true, rh.AircraftDidEnterRadarRangeEvent (them));
        }
コード例 #22
0
        public void DistancePersonalLong()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40,-89.09053,3000);

            double distance = utility.Distance (coordinate1, coordinate2);
            Console.WriteLine("distance personalLong: " + distance);
            Assert.That (4.174, Is.LessThan(distance));
            Assert.That (4.176, Is.GreaterThan(distance));
        }
コード例 #23
0
        public void LLAtoECEFtest()
        {
            MathCalcUtility utility = new MathCalcUtility ();
            Vector<double> result = utility.CalculateCoordinate (34.0522, -118.40806, 0);

            Assert.AreEqual (-2516.715, result[0]);
            Assert.AreEqual (-4653.003, result[1]);
            Assert.AreEqual (3551.245, result[2]);

            Vector<double> result2 = utility.CalculateCoordinate (100, 100, 100);

            Assert.AreEqual (192.955, result2 [0]);
            Assert.AreEqual (-1094.301, result2 [1]);
            Assert.AreEqual (6259.641, result2 [2]);
        }
コード例 #24
0
        public void DistancePersonalLong()
        {
            MathCalcUtility utility = new MathCalcUtility ();

            Vector<double> coordinate1 = utility.CalculateCoordinate (40,-89,3000);
            Vector<double> coordinate2 = utility.CalculateCoordinate (40,-89.09053,3000);

            double distance = utility.Distance (coordinate1, coordinate2); //7.735km
            distance *= 0.539956804;
            Assert.AreEqual (4.17656587894, distance);
        }