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