public static void TestCentroidCalculation(HyperCubeOperations hco, IHyperCube <double> hc_1, IHyperCube <double> hc_2, IHyperCube <double> hc_3, string[] varNames)
        {
            IHyperCube <double>[] points = new IHyperCube <double>[] { hc_1, hc_2, hc_3 };
            var centroid = hco.GetCentroid(points);

            //[0,0,0]
            //[1,0,0]
            //[0,2,0]
            TestAreEqual(new double[] { 1 / 3.0, 2 / 3.0, 0 }, centroid, varNames);
        }
        public void TestGetCentroid()
        {
            var hco = new HyperCubeOperations(new BasicRngFactory(0));

            var hc_1 = factory.Create(3, 0, 0, 4);
            var hc_2 = factory.Create(3, 0, 0, 4);
            var hc_3 = factory.Create(3, 0, 0, 4);


            //var hc_1 = new TestHyperCube(3, 0, 0, 4);
            //var hc_2 = (TestHyperCube)hc_1.Clone();
            //var hc_3 = (TestHyperCube)hc_1.Clone();
            var varNames = hc_1.GetVariableNames();

            hc_2.SetValue(varNames[0], 1);
            hc_3.SetValue(varNames[1], 2);

            TestCentroidCalculation(hco, hc_1, hc_2, hc_3, varNames);
        }