Пример #1
0
        public void TestNewConverter()
        {
            JsonSerializerOptions options = new JsonSerializerOptions
            {
                WriteIndented = true,
                Converters    =
                {
                    new SimpleHypergridJsonConverter(),
                    new DimensionJsonConverter(),
                },
            };

            var    json = JsonSerializer.Serialize <SimpleHypergrid>(allKindsOfDimensions, options);
            string serializedHypergrid = allKindsOfDimensions.ToJson();

            var deserializedSimpleHypergrid = JsonSerializer.Deserialize <SimpleHypergrid>(serializedHypergrid, options);
        }
Пример #2
0
        public void TestSerializingSimpleHypergrid()
        {
            string originalValidSimpleHypergridJsonString = PythonScriptsAndJsons.SpinlockSearchSpaceJson;

            SimpleHypergrid spinlockSearchSpace = new SimpleHypergrid(
                name: "SpinlockSearchSpace",
                dimensions: new List <IDimension>()
            {
                new DiscreteDimension(name: "shortBackOffMilliSeconds", min: 1, max: 1 << 20),
                new DiscreteDimension(name: "longBackOffMilliSeconds", min: 1, max: 1 << 20),
                new DiscreteDimension(name: "longBackOffWaitMilliSeconds", min: 1, max: 1 << 20),
                new DiscreteDimension(name: "minSpinCount", min: 1, max: 1 << 20),
                new DiscreteDimension(name: "maxSpinCount", min: 1, max: 1 << 20),
                new DiscreteDimension(name: "maxbackOffAttempts", min: 1, max: 1 << 20),
                new DiscreteDimension(name: "acquireSpinCount", min: 1, max: 1 << 20),
                new CategoricalDimension(name: "algorithm", values: new List <object> {
                    "Optimistic", "ExponentialBackoff"
                }),
            });
            var jsonSerializerOptions = new JsonSerializerOptions
            {
                WriteIndented = true,
                Converters    =
                {
                    new JsonStringEnumConverter(),
                    new SimpleHypergridJsonConverter(),
                    new DimensionJsonConverter(),
                },
            };

            string serializedJsonString = JsonSerializer.Serialize(spinlockSearchSpace, jsonSerializerOptions);

            Assert.Equal(originalValidSimpleHypergridJsonString, serializedJsonString);

            string yetAnotherSerializedJsonString = spinlockSearchSpace.ToJson();

            Assert.Equal(originalValidSimpleHypergridJsonString, yetAnotherSerializedJsonString);
        }