public static OptimizerService.OrdinalDimension EncodeOrdinalDimension(OrdinalDimension dimension)
        {
            var instance = new OptimizerService.OrdinalDimension();

            instance.Name      = dimension.Name;
            instance.Ascending = dimension.Ascending;
            instance.OrderedValues.AddRange(
                dimension.OrderedValues.Select(value => EncodePrimitiveValue(value)));

            return(instance);
        }
Esempio n. 2
0
        public void TestOrdinalDimension()
        {
            object[] data         = new object[] { "the", false, "brown", "fox", 8, "the", "lazy", "dog" };
            var      dimension    = new OrdinalDimension("ordinal test", false, data);
            var      serialized   = OptimizerServiceEncoder.EncodeOrdinalDimension(dimension);
            var      deserialized = OptimizerServiceDecoder.DecodeOrdinalDimension(serialized);

            Assert.Equal(dimension.Name, deserialized.Name);
            Assert.True(deserialized.OrderedValues.SequenceEqual(data));
            Assert.False(deserialized.OrderedValues.SequenceEqual(new object[] { "ensure failure" }));
        }
Esempio n. 3
0
        public TestSerializingAndDeserializing()
        {
            /* FIXME: This needs better cross-plat support and error handling.
             * - We should include C:\Python37 as another PYTHONHOME location to look for by default
             * - Currently this doesn't handle Linux very well
             * - On Ubuntu Python 3.7 needs to be installed from a separate
             *   repo, which installs as libpython3.7m.so which fails tobe
             *   found due to the trailing "m".
             */

            string pathToVirtualEnv = Environment.GetEnvironmentVariable("PYTHONHOME");

            if (string.IsNullOrEmpty(pathToVirtualEnv))
            {
                pathToVirtualEnv = @"c:\ProgramData\Anaconda3";
            }
            else
            {
                Environment.SetEnvironmentVariable("PYTHONHOME", pathToVirtualEnv, EnvironmentVariableTarget.Process);
            }

            string pathToPythonPkg = $"{pathToVirtualEnv}\\pkgs\\python-3.7.4-h5263a28_0";

            Environment.SetEnvironmentVariable("PATH", $"{pathToVirtualEnv};{pathToPythonPkg}", EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("PYTHONPATH", $"{pathToVirtualEnv}\\Lib\\site-packages;{pathToVirtualEnv}\\Lib", EnvironmentVariableTarget.Process);

            continuous = new ContinuousDimension(name: "continuous", min: 1, max: 10);
            discrete   = new DiscreteDimension(name: "discrete", min: 1, max: 10);
            ordinal    = new OrdinalDimension(name: "ordinal", orderedValues: new List <object>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            }, ascending: true);
            categorical = new CategoricalDimension(name: "categorical", values: new List <object>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            });
            allKindsOfDimensions = new Hypergrid(
                name: "all_kinds_of_dimensions",
                dimensions: new IDimension[]
            {
                continuous,
                discrete,
                ordinal,
                categorical,
            });
        }
Esempio n. 4
0
        public TestSerializingAndDeserializing()
        {
            string pathToVirtualEnv = Environment.GetEnvironmentVariable("PYTHONHOME");

            if (string.IsNullOrEmpty(pathToVirtualEnv))
            {
                pathToVirtualEnv = @"c:\ProgramData\Anaconda3";
            }
            else
            {
                Environment.SetEnvironmentVariable("PYTHONHOME", pathToVirtualEnv, EnvironmentVariableTarget.Process);
            }

            string pathToPythonPkg = $"{pathToVirtualEnv}\\pkgs\\python-3.7.4-h5263a28_0";

            Environment.SetEnvironmentVariable("PATH", $"{pathToVirtualEnv};{pathToPythonPkg}", EnvironmentVariableTarget.Process);
            Environment.SetEnvironmentVariable("PYTHONPATH", $"{pathToVirtualEnv}\\Lib\\site-packages;{pathToVirtualEnv}\\Lib", EnvironmentVariableTarget.Process);

            continuous = new ContinuousDimension(name: "continuous", min: 1, max: 10);
            discrete   = new DiscreteDimension(name: "discrete", min: 1, max: 10);
            ordinal    = new OrdinalDimension(name: "ordinal", orderedValues: new List <object>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            }, ascending: true);
            categorical = new CategoricalDimension(name: "categorical", values: new List <object>()
            {
                1, 2, 3, 4, 5, 6, 7, 8, 9, 10
            });
            allKindsOfDimensions = new SimpleHypergrid(
                name: "all_kinds_of_dimensions",
                dimensions: new List <IDimension>()
            {
                continuous,
                discrete,
                ordinal,
                categorical,
            });
        }