public virtual void TestEMD_standard1()
        {
            var e = new EMD();
            var costMatrix = new []{
                                       new []{109.927246, 97.283089, 352.900848},
                                       new []{211.955185, 195.971939, 348.094818},
                                       new []{244.180267, 115.429634, 254.909790},
                                       new []{141.435501, 52.000000, 334.752136}
                                   };

            var s1 = new Signature(new[] { 0.4, 0.3, 0.2, 0.1 });
            var s2 = new Signature(new[] { 0.5, 0.3, 0.2 });

            double ris = e.Emd(s1, s2, costMatrix, null, 0, null);
            System.Console.Out.WriteLine(ris);
            var exp = 16054;

            Assert.AreEqual(exp, (int)(ris * 100));
        }
        public void TestEMD_standard2()
        {
            var e = new EMD();
            var Dist = new[]
                           {
                               new[] {51.029404, 237.354172, 237.953781},
                               new[] {87.624199, 212.002365, 180.305298},
                               new[] {89.448311, 157.556335, 254.517197},
                               new[] {237.404724, 169.717407, 121.897499}
                           };

            var s1 = new Signature(new[] { 0.2,0.6,0.4,0.1 });
            var s2 = new Signature(new[] { 0.1,0.6,0.1 });
            
            double ris = e.Emd(s1, s2, Dist, null, 0, null);
            System.Console.Out.WriteLine(ris);
            var exp = 15339;
            Assert.AreEqual(exp, (int)(ris * 100));
        }