public PowerJsonConverter(
     PowerJsonSerializationFormat serializationFormat          = PowerJsonSerializationFormat.AsWattsWithUnit,
     LinearUnitJsonSerializationFormat unitSerializationFormat = LinearUnitJsonSerializationFormat.PredefinedAsString)
     : base(
         unitConverter: new PowerUnitJsonConverter(unitSerializationFormat),
         serializationFormat: (QuantityJsonSerializationFormat)serializationFormat)
 {
 }
 public PowerSerializeTestData(
     Power value,
     PowerJsonSerializationFormat format,
     LinearUnitJsonSerializationFormat unitFormat,
     string expectedJsonPattern)
     : base(value, unitFormat, expectedJsonPattern)
 {
     Format = format;
 }
        public void SerializeAndDeserializeWithWatts_ShouldBeIdempotent(PowerJsonSerializationFormat format, LinearUnitJsonSerializationFormat unitFormat)
        {
            // arrange
            var power     = Fixture.Create <Power>();
            var converter = new PowerJsonConverter(format, unitFormat);

            // act
            string serializedPower1   = JsonConvert.SerializeObject(power, converter);
            var    deserializedPower1 = JsonConvert.DeserializeObject <Power>(serializedPower1, converter);
            string serializedPower2   = JsonConvert.SerializeObject(deserializedPower1, converter);
            var    deserializedPower2 = JsonConvert.DeserializeObject <Power>(serializedPower2, converter);

            // assert
            deserializedPower1.Should().Be(power);
            deserializedPower2.Should().Be(power);

            deserializedPower2.Should().Be(deserializedPower1);
            serializedPower2.Should().Be(serializedPower1);
        }