Beispiel #1
0
        public void string_to_multidimensional()
        {
            string[][] a = Jagged.Magic(3).Apply((x, i, j) => x.ToString());

            double[,] expected = Matrix.Magic(3);

            object actual = a.To <double[, ]>();

            Assert.AreEqual(expected, actual);
        }
Beispiel #2
0
        public void string_to_jagged()
        {
            string[][] a = Jagged.Magic(3).Apply((x, i, j) => x.ToString());

            double[][] expected = Jagged.Magic(3);

            object actual = a.To <double[][]>();

            Assert.AreEqual(expected, actual);
        }
Beispiel #3
0
        public void jagged_to_multidimensional()
        {
            double[][] a = Jagged.Magic(3);

            double[,] expected = Matrix.Magic(3);

            object actual = a.To <double[, ]>();

            Assert.AreEqual(expected, actual);
        }
        public void string_to_jagged()
        {
            string[][] a        = Jagged.Magic(3).Apply((x, i, j) => x.ToString());
            double[][] expected = Jagged.Magic(3);

            var actual = a.To <double[][]>();

            for (int i = 0; i < actual.GetLength()[0]; i++)
            {
                for (int j = 0; j < actual.GetLength()[1]; j++)
                {
                    Assert.AreEqual(expected[i][j], actual[i][j]);
                }
            }
        }
Beispiel #5
0
        public void InverseTestNaN()
        {
            int n = 5;

            var I = Matrix.Identity(n);

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    double[][] value = Jagged.Magic(n);

                    value[i][j] = double.NaN;

                    var target = new JaggedEigenvalueDecomposition(value);
                }
            }
        }
Beispiel #6
0
        public void minimize_test2()
        {
            double[][] costMatrix = Jagged.Magic(5);

            var m = new Munkres(costMatrix);

            Assert.AreEqual(5, m.NumberOfTasks);
            Assert.AreEqual(5, m.NumberOfWorkers);

            bool success = m.Minimize();

            Assert.IsTrue(success);
            Assert.AreEqual(15, m.Value);
            Assert.AreEqual(2, m.Solution[0]);
            Assert.AreEqual(1, m.Solution[1]);
            Assert.AreEqual(0, m.Solution[2]);
            Assert.AreEqual(4, m.Solution[3]);
            Assert.AreEqual(3, m.Solution[4]);
        }
        public void InverseTestNaN()
        {
            int n = 5;

            var I = Jagged.Identity(n);

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    double[][] value = Jagged.Magic(n);

                    value[i][j] = double.NaN;

                    var target = new JaggedQrDecomposition(value);

                    var solution = target.Solve(I);
                    var inverse  = target.Inverse();

                    Assert.IsTrue(Matrix.IsEqual(solution, inverse));
                }
            }
        }
Beispiel #8
0
        public void InverseTest2()
        {
            int n = 5;

            var I = Jagged.Identity(n);

            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    double[][] value = Jagged.Magic(n);

                    var target = new JaggedSingularValueDecomposition(value);

                    double[][] solution = target.Solve(I);
                    double[][] inverse  = target.Inverse();
                    double[][] reverse  = target.Reverse();

                    Assert.IsTrue(Matrix.IsEqual(solution, inverse, 1e-4));
                    Assert.IsTrue(Matrix.IsEqual(value, reverse, 1e-4));
                }
            }
        }
Beispiel #9
0
        public void new_method_column_names()
        {
            double[][] data        = Jagged.Magic(3);
            string[]   columnNames = { "x", "y", "z" };
            var        target      = new DescriptiveAnalysis(columnNames);

            target.Learn(data);

            Assert.AreEqual("x", target.ColumnNames[0]);
            Assert.AreEqual("y", target.ColumnNames[1]);
            Assert.AreEqual("z", target.ColumnNames[2]);

            target.ColumnNames = columnNames;


            Assert.IsTrue(target.CorrelationMatrix.IsEqual(new double[, ]
            {
                { 1.0000, -0.7559, 0.1429 },
                { -0.7559, 1.0000, -0.7559 },
                { 0.1429, -0.7559, 1.0000 },
            }, atol: 0.0001));

            Assert.IsTrue(target.CovarianceMatrix.IsEqual(new double[, ]
            {
                { 7, -8, 1 },
                { -8, 16, -8 },
                { 1, -8, 7 },
            }, atol: 0.00000001));

            Assert.IsTrue(target.StandardScores.IsEqual(new double[, ]
            {
                { 1.1339, -1.0000, 0.3780 },
                { -0.7559, 0, 0.7559 },
                { -0.3780, 1.0000, -1.1339 },
            }, atol: 0.001));

            Assert.IsTrue(target.Means.IsEqual(new double[] { 5, 5, 5 }));

            Assert.IsTrue(target.StandardDeviations.IsEqual(new double[] { 2.6458, 4.0000, 2.6458 }, 0.001));

            Assert.IsTrue(target.Medians.IsEqual(new double[] { 4, 5, 6 }));


            Assert.AreEqual(3, target.Ranges[0].Min);
            Assert.AreEqual(8, target.Ranges[0].Max);
            Assert.AreEqual(1, target.Ranges[1].Min);
            Assert.AreEqual(9, target.Ranges[1].Max);
            Assert.AreEqual(2, target.Ranges[2].Min);
            Assert.AreEqual(7, target.Ranges[2].Max);

            Assert.AreEqual(3, target.Samples);
            Assert.AreEqual(3, target.Variables);

            Assert.IsTrue(target.Source.IsEqual(Matrix.Magic(3)));

            Assert.IsTrue(target.Sums.IsEqual(new double[] { 15, 15, 15 }));

            Assert.IsTrue(target.Variances.IsEqual(new double[] { 7, 16, 7 }));

            Assert.AreEqual(3, target.Quartiles[0].Min);
            Assert.AreEqual(8, target.Quartiles[0].Max);
            Assert.AreEqual(1, target.Quartiles[1].Min);
            Assert.AreEqual(9, target.Quartiles[1].Max);
            Assert.AreEqual(2, target.Quartiles[2].Min);
            Assert.AreEqual(7, target.Quartiles[2].Max);
        }