public void CalculateParametersTest2()
        {
            LeastSquares target = new QuadraticFit();
            target.Points.Add(new DPoint(2, 4));
            target.Points.Add(new DPoint(4, 16));
            target.Points.Add(new DPoint(5, 25));

            Matrix expected = new Matrix(new double[,]{
                {0},
                {0},
                {1}});
            Matrix actual;
            actual = target.CalculateParameters();
            actual.FactorInScalar();
            //			Debug.WriteLine(actual.ToString());
            //			Debug.WriteLine(expected.ToString());
            //have to string compare due to double precision
            Assert.AreEqual(expected.ToString(), actual.ToString());
        }
        public void GetXTermsMatrixTest()
        {
            //Excel generated data, y = 5 -7x +2xx
            QuadraticFit target = new QuadraticFit();
            target.Points.Add(new DPoint(0, 5));
            target.Points.Add(new DPoint(1, 0));
            target.Points.Add(new DPoint(2, -1));
            target.Points.Add(new DPoint(3, 2));
            target.Points.Add(new DPoint(4, 9));
            target.Points.Add(new DPoint(5, 20));

            Matrix expected = new Matrix(new double[,]{
                {1,0,0},
                {1,1,1},
                {1,2,4},
                {1,3,9},
                {1,4,16},
                {1,5,25}});

            Matrix actual = target.GetXTermsMatrix();
            Assert.AreEqual(expected, actual);
        }
        public void GetXTermsMatrixTest()
        {
            //data for y = -7x +2xx
            QuadraticFitThruZero target = new QuadraticFitThruZero();
            target.Points.Add(new DPoint(0, 0));
            target.Points.Add(new DPoint(1, -5));
            target.Points.Add(new DPoint(2, -6));
            target.Points.Add(new DPoint(3, -3));
            target.Points.Add(new DPoint(4, 4));
            target.Points.Add(new DPoint(5, 15));

            Matrix expected = new Matrix(new double[,]{
                {0,0},
                {1,1},
                {2,4},
                {3,9},
                {4,16},
                {5,25}});

            Matrix actual = target.GetXTermsMatrix();
            Assert.AreEqual(expected, actual);
        }
        public void CalculateParametersTest()
        {
            LeastSquares target = new QuadraticFit();
            //Excel generated data, y = 5 -7x +2xx
            target.Points.Add(new DPoint(0, 5));
            target.Points.Add(new DPoint(1, 0));
            target.Points.Add(new DPoint(2, -1));
            target.Points.Add(new DPoint(3, 2));
            target.Points.Add(new DPoint(4, 9));
            target.Points.Add(new DPoint(5, 20));

            Matrix expected = new Matrix(new double[,]{
                {5},
                {-7},
                {2}});
            Matrix actual;
            actual = target.CalculateParameters();
            actual.FactorInScalar();
            //			Debug.WriteLine(actual.ToString());
            //			Debug.WriteLine(expected.ToString());
            //have to string compare due to double precision
            Assert.AreEqual(expected.ToString(), actual.ToString());
        }
        public void GetYValuesMatrixTest()
        {
            LeastSquares target = new QuadraticFit();
            //Excel generated data, y = 5 -7x +2xx
            target.Points.Add(new DPoint(0, 5));
            target.Points.Add(new DPoint(1, 0));
            target.Points.Add(new DPoint(2, -1));
            target.Points.Add(new DPoint(3, 2));
            target.Points.Add(new DPoint(4, 9));
            target.Points.Add(new DPoint(5, 20));

            Matrix expected = new Matrix(new double[,]{
                {5},
                {0},
                {-1},
                {2},
                {9},
                {20}});
            Matrix actual = target.GetYValuesMatrix();
            Assert.AreEqual(expected, actual);
        }