public void OneTimeSetup() { var contractResolver = new DefaultContractResolver { NamingStrategy = new CamelCaseNamingStrategy { OverrideSpecifiedNames = false, ProcessDictionaryKeys = true, } }; DefaultSettings = new JsonSerializerSettings { Formatting = Formatting.None, ContractResolver = contractResolver, Converters = new JsonConverterCollection(), }; var optimizedConverters = new JsonConverterCollection(); optimizedConverters.Add(DoubleArrayConverter.Create(6)); OptimizedSettings = new JsonSerializerSettings { Formatting = Formatting.None, ContractResolver = contractResolver, Converters = optimizedConverters, }; }
public void Setup() { Random rand = new Random(42); List <IEnumerable <double> > list = new List <IEnumerable <double> >(); for (int i = 0; i < ArraysCount; i++) { var item = Enumerable.Range(1, 61).Select(x => rand.NextDouble() * 10000); if (Kind == CollectionFlavour.List) { list.Add(item.ToList()); } else if (Kind == CollectionFlavour.Array) { list.Add(item.ToArray()); } else if (Kind == CollectionFlavour.ROList) { list.Add(item.ToList().ToImmutableList()); } else if (Kind == CollectionFlavour.ROArray) { list.Add(item.ToList().ToImmutableArray()); } else if (Kind == CollectionFlavour.Enumerable) { list.Add(AsEnumerable(item.ToArray())); } else { throw new InvalidOperationException($"Unknown flavor: {Kind}"); } } Data = list.ToArray(); DefaultSettings = new JsonSerializerSettings { Formatting = Formatting.None, ContractResolver = TheContractResolver, Converters = new JsonConverterCollection(), }; var optimizedConverters = new JsonConverterCollection(); optimizedConverters.Add(DoubleArrayConverter.Create(6)); OptimizedSettings = new JsonSerializerSettings { Formatting = Formatting.None, ContractResolver = TheContractResolver, Converters = optimizedConverters, }; { var json = JsonConvert.SerializeObject(Data, DefaultSettings); Console.WriteLine($"// DOUBLES-DATA-LENGTH[json.net]: {json.Length} chars"); } { var json = System.Text.Json.JsonSerializer.SerializeToUtf8Bytes(Data, SystemSettings); Console.WriteLine($"// DOUBLES-DATA-LENGTH[system]: {json.Length} bytes"); } { var json = JsonConvert.SerializeObject(Data, OptimizedSettings); Console.WriteLine($"// DOUBLES-DATA-LENGTH[optimized]: {json.Length} chars"); } }