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); }
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" })); }
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, }); }
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, }); }