Accord.Tests.Math.DistanceTest.IsMetricTest C# (CSharp) Method

IsMetricTest() private method

private IsMetricTest ( ) : void
return void
        public void IsMetricTest()
        {
            Assert.IsTrue(Distance.IsMetric(Distance.Euclidean));
            Assert.IsTrue(Distance.IsMetric((double[] a, double[] b) => Distance.Manhattan(a, b)));
            Assert.IsTrue(Distance.IsMetric((int[] a, int[] b) => Distance.Manhattan(a, b)));
            Assert.IsFalse(Distance.IsMetric(Distance.Hamming));
            Assert.IsTrue(Distance.IsMetric((double[] a, double[] b) => new Minkowski(1).Distance(a, b)));
            Assert.IsTrue(Distance.IsMetric((double[] a, double[] b) => new Levenshtein<double>().Distance(a, b)));
            Assert.IsTrue(Distance.IsMetric(Distance.Chebyshev));
            Assert.IsTrue(Distance.IsMetric(Distance.Hellinger));

            Assert.IsFalse(Distance.IsMetric(Distance.Cosine));
            Assert.IsFalse(Distance.IsMetric(Distance.SquareEuclidean));
            Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => Math.Pow(Distance.Manhattan(a, b), 2)));
            Assert.IsFalse(Distance.IsMetric(Distance.BrayCurtis));
            // Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => new Minkowski(2).Distance(a, b)));
            // Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => new Minkowski(3).Distance(a, b)));

            Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => Distance.Kulczynski(a, b)));
            Assert.IsTrue(Distance.IsMetric((double[] a, double[] b) => Distance.Jaccard(a, b)));
            // Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => Distance.RogersTanimoto(a, b)));
            // Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => Distance.SokalMichener(a, b)));
            // Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => Distance.SokalSneath(a, b)));
            // Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => Distance.Yule(a, b)));
            // Assert.IsFalse(Distance.IsMetric((double[] a, double[] b) => Distance.Dice(a, b)));



            Assert.IsTrue(Distance.IsMetric<double[]>(new Euclidean()));
            Assert.IsTrue(Distance.IsMetric<double[]>(new Manhattan()));
            Assert.IsFalse(Distance.IsMetric<double[]>(new Hamming()));
            Assert.IsTrue(Distance.IsMetric<double[]>(new Minkowski(1)));
            Assert.IsTrue(Distance.IsMetric(new Levenshtein()));
            Assert.IsTrue(Distance.IsMetric(new Chebyshev()));
            Assert.IsFalse(Distance.IsMetric(new Cosine()));
            Assert.IsTrue(Distance.IsMetric(new Hellinger()));
            Assert.IsFalse(Distance.IsMetric(new SquareEuclidean()));
            Assert.IsFalse(Distance.IsMetric(new BrayCurtis()));
            // Assert.IsFalse(Distance.IsMetric<double[]>(new Minkowski(2)));
            // Assert.IsFalse(Distance.IsMetric<double[]>(new Minkowski(3)));

            Assert.IsFalse(Distance.IsMetric<double[]>(new Kulczynski()));
            Assert.IsTrue(Distance.IsMetric<double[]>(new Jaccard<double>()));
            Assert.IsFalse(Distance.IsMetric<double[]>(new RogersTanimoto()));
            Assert.IsFalse(Distance.IsMetric<double[]>(new SokalMichener()));
            Assert.IsFalse(Distance.IsMetric<double[]>(new SokalSneath()));
            Assert.IsFalse(Distance.IsMetric<double[]>(new Yule()));
            Assert.IsFalse(Distance.IsMetric<double[]>(new Dice()));

            // Assert.IsFalse(Distance.IsMetric(Dissimilarity.RusselRao));
        }
    }