コード例 #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.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
        }
コード例 #2
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]);
        }
コード例 #3
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]);
        }
コード例 #4
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 //
        }
コード例 #5
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
        }