Skip to content

Commit b8a94dc

Browse files
committed
Remove QuantityValue
1 parent 2e191b9 commit b8a94dc

19 files changed

+37
-484
lines changed

CodeGen/Generators/UnitsNetGen/NumberExtensionsGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public static class NumberTo{_quantityName}Extensions
4545
continue;
4646

4747
Writer.WL(2, $@"
48-
/// <inheritdoc cref=""{_quantityName}.From{unit.PluralName}(UnitsNet.QuantityValue)"" />");
48+
/// <inheritdoc cref=""{_quantityName}.From{unit.PluralName}(double)"" />");
4949

5050
Writer.WLIfText(2, GetObsoleteAttributeOrNull(unit.ObsoleteText));
5151

CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ private void GenerateProperties()
265265
public {_valueType} Value => _value;
266266
267267
/// <inheritdoc />
268-
QuantityValue IQuantity.Value => _value;
268+
double IQuantity.Value => _value;
269269
270270
Enum IQuantity.Unit => Unit;
271271
@@ -395,7 +395,7 @@ private void GenerateStaticFactoryMethods()
395395
/// <exception cref=""ArgumentException"">If value is NaN or Infinity.</exception>");
396396
Writer.WLIfText(2, GetObsoleteAttributeOrNull(unit));
397397
Writer.WL($@"
398-
public static {_quantity.Name} From{unit.PluralName}(QuantityValue {valueParamName})
398+
public static {_quantity.Name} From{unit.PluralName}(double {valueParamName})
399399
{{
400400
{_valueType} value = ({_valueType}) {valueParamName};
401401
return new {_quantity.Name}(value, {_unitEnumName}.{unit.SingularName});
@@ -410,7 +410,7 @@ private void GenerateStaticFactoryMethods()
410410
/// <param name=""value"">Value to convert from.</param>
411411
/// <param name=""fromUnit"">Unit to convert from.</param>
412412
/// <returns>{_quantity.Name} unit value.</returns>
413-
public static {_quantity.Name} From(QuantityValue value, {_unitEnumName} fromUnit)
413+
public static {_quantity.Name} From(double value, {_unitEnumName} fromUnit)
414414
{{
415415
return new {_quantity.Name}(({_valueType})value, fromUnit);
416416
}}

CodeGen/Generators/UnitsNetGen/StaticQuantityGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public partial class Quantity
4949
/// <param name=""quantityInfo"">The <see cref=""QuantityInfo""/> of the quantity to create.</param>
5050
/// <param name=""value"">The value to construct the quantity with.</param>
5151
/// <returns>The created quantity.</returns>
52-
public static IQuantity FromQuantityInfo(QuantityInfo quantityInfo, QuantityValue value)
52+
public static IQuantity FromQuantityInfo(QuantityInfo quantityInfo, double value)
5353
{
5454
return quantityInfo.Name switch
5555
{");
@@ -72,7 +72,7 @@ public static IQuantity FromQuantityInfo(QuantityInfo quantityInfo, QuantityValu
7272
/// <param name=""unit"">Unit enum value.</param>
7373
/// <param name=""quantity"">The resulting quantity if successful, otherwise <c>default</c>.</param>
7474
/// <returns><c>True</c> if successful with <paramref name=""quantity""/> assigned the value, otherwise <c>false</c>.</returns>
75-
public static bool TryFrom(QuantityValue value, Enum? unit, [NotNullWhen(true)] out IQuantity? quantity)
75+
public static bool TryFrom(double value, Enum? unit, [NotNullWhen(true)] out IQuantity? quantity)
7676
{
7777
quantity = unit switch
7878
{");

UnitsNet.Serialization.JsonNet.Tests/AbbreviatedUnitsConverterTests.cs

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -277,25 +277,6 @@ class PlainOldDoubleQuantity
277277
public string Unit { get; set; }
278278
}
279279

280-
[JsonObject]
281-
class PlainOldDecimalQuantity
282-
{
283-
public decimal Value { get; set; }
284-
public string Unit { get; set; }
285-
}
286-
287-
[Fact]
288-
public void LargeDecimalQuantity_DeserializedTo_PlainOldDoubleQuantity()
289-
{
290-
var quantity = Information.FromExabytes(2m * long.MaxValue);
291-
292-
var json = SerializeObject(quantity);
293-
var plainOldQuantity = JsonConvert.DeserializeObject<PlainOldDoubleQuantity>(json);
294-
295-
Assert.Equal(2.0 * long.MaxValue, plainOldQuantity.Value);
296-
Assert.Equal("EB", plainOldQuantity.Unit);
297-
}
298-
299280
#endregion
300281

301282
}

UnitsNet.Serialization.JsonNet.Tests/UnitsNetBaseJsonConverterTest.cs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,7 @@ public void UnitsNetBaseJsonConverter_ConvertIQuantity_works_with_double_type()
2929
Assert.Equal("LengthUnit.Meter", result.Unit);
3030
Assert.Equal(10.2365, result.Value);
3131
}
32-
33-
[Fact]
34-
public void UnitsNetBaseJsonConverter_ConvertIQuantity_works_with_decimal_type()
35-
{
36-
var result = _sut.Test_ConvertDecimalIQuantity(Information.FromBits(64m));
37-
38-
Assert.Equal("InformationUnit.Bit", result.Unit);
39-
Assert.Equal(64m, result.Value);
40-
}
41-
32+
4233
[Fact]
4334
public void UnitsNetBaseJsonConverter_ConvertIQuantity_throws_ArgumentNullException_when_quantity_is_NULL()
4435
{

UnitsNet.Serialization.JsonNet.Tests/UnitsNetIQuantityJsonConverterTest.cs

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -68,23 +68,6 @@ public void UnitsNetIQuantityJsonConverter_WriteJson_works_with_double_quantity(
6868
Assert.Equal("{\"Unit\":\"LengthUnit.Meter\",\"Value\":10.2365}", result.ToString());
6969
}
7070

71-
[Theory]
72-
[InlineData(10.2365, "10.2365", "10.2365")]
73-
[InlineData(10, "10.0", "10")] // Json.NET adds .0
74-
public void UnitsNetIQuantityJsonConverter_WriteJson_works_with_decimal_quantity(decimal value, string expectedValue, string expectedValueString)
75-
{
76-
var result = new StringBuilder();
77-
78-
using (var stringWriter = new StringWriter(result))
79-
using(var writer = new JsonTextWriter(stringWriter))
80-
{
81-
_sut.WriteJson(writer, Information.FromBits(value), JsonSerializer.CreateDefault());
82-
}
83-
84-
Assert.Equal($"{{\"Unit\":\"InformationUnit.Bit\",\"Value\":{expectedValue},\"ValueString\":\"{expectedValueString}\",\"ValueType\":\"decimal\"}}",
85-
result.ToString());
86-
}
87-
8871
[Fact]
8972
public void UnitsNetIQuantityJsonConverter_CanRead_returns_true()
9073
{

UnitsNet.Serialization.JsonNet/AbbreviatedUnitsConverter.cs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -172,15 +172,11 @@ protected string GetQuantityType(IQuantity quantity)
172172
unit = GetUnitOrDefault(unitAbbreviation, quantityInfo);
173173
}
174174

175-
QuantityValue value;
175+
double value;
176176
if (valueToken is null)
177177
{
178178
value = default;
179179
}
180-
else if (quantityInfo.Zero is IValueQuantity<decimal>)
181-
{
182-
value = decimal.Parse(valueToken, CultureInfo.InvariantCulture);
183-
}
184180
else
185181
{
186182
value = double.Parse(valueToken, CultureInfo.InvariantCulture);

UnitsNet.Serialization.JsonNet/UnitsNetBaseJsonConverter.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public abstract class UnitsNetBaseJsonConverter<T> : JsonConverter<T>
2121

2222
/// <summary>
2323
/// Register custom types so that the converter can instantiate these quantities.
24-
/// Instead of calling <see cref="Quantity.From(UnitsNet.QuantityValue,System.Enum)"/>, the <see cref="Activator"/> will be used to instantiate the object.
24+
/// Instead of calling <see cref="Quantity.From(double,System.Enum)"/>, the <see cref="Activator"/> will be used to instantiate the object.
2525
/// It is therefore assumed that the constructor of <paramref name="quantity"/> is specified with <c>new T(double value, typeof(<paramref name="unit"/>) unit)</c>.
2626
/// Registering the same <paramref name="unit"/> multiple times, it will overwrite the one registered.
2727
/// </summary>
@@ -113,11 +113,7 @@ protected IQuantity ConvertValueUnit(ValueUnit valueUnit)
113113
return (IQuantity)Activator.CreateInstance(registeredQuantity, valueUnit.Value, unit);
114114
}
115115

116-
return valueUnit switch
117-
{
118-
ExtendedValueUnit {ValueType: "decimal", ValueString: {}} extendedValueUnit => Quantity.From(decimal.Parse(extendedValueUnit.ValueString, CultureInfo.InvariantCulture), unit),
119-
_ => Quantity.From(valueUnit.Value, unit)
120-
};
116+
return Quantity.From(valueUnit.Value, unit);
121117
}
122118

123119
private (Type? Quantity, Type? Unit) GetRegisteredType(string unit)

UnitsNet.Tests/CustomQuantities/HowMuch.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public HowMuch(double value, HowMuchUnit unit)
1919
Enum IQuantity.Unit => Unit;
2020
public HowMuchUnit Unit { get; }
2121

22-
public QuantityValue Value { get; }
22+
public double Value { get; }
2323

2424
#region IQuantity
2525

UnitsNet.Tests/DecimalOverloadTests.cs

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)