Skip to content

Commit 18dbc2f

Browse files
lipchevangularsen
andauthored
Making the QuantityInfoLookup public (#1597)
- making the `QuantityInfoLookup` type public - exposing the `Quantities` associated with a given `UnitParser` and `UnitAbbreviationsCache` - exposing the `QuantityInfoLookup` property of the `UnitsNetSetup` --------- Co-authored-by: Andreas Gullberg Larsen <[email protected]>
1 parent c971e46 commit 18dbc2f

File tree

9 files changed

+19
-27
lines changed

9 files changed

+19
-27
lines changed

UnitsNet.Tests/UnitAbbreviationsCacheTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public void EmptyConstructor_ReturnsAnAbbreviationCacheWithDefaultQuantityInfoLo
2323
{
2424
var unitAbbreviationCache = new UnitAbbreviationsCache();
2525

26-
Assert.Equal(UnitsNetSetup.Default.QuantityInfoLookup, unitAbbreviationCache.Quantities);
26+
Assert.Equal(UnitsNetSetup.Default.Quantities, unitAbbreviationCache.Quantities);
2727
Assert.Equal("g", unitAbbreviationCache.GetUnitAbbreviations(MassUnit.Gram, AmericanCulture)[0]);
2828
Assert.Throws<UnitNotFoundException>(() => unitAbbreviationCache.GetUnitAbbreviations(HowMuchUnit.Some));
2929
}
@@ -33,7 +33,7 @@ public void Constructor_WithQuantities_ReturnsAnAbbreviationCacheWithNewQuantity
3333
{
3434
var unitAbbreviationCache = new UnitAbbreviationsCache([Mass.Info, HowMuch.Info]);
3535

36-
Assert.NotEqual(UnitsNetSetup.Default.QuantityInfoLookup, unitAbbreviationCache.Quantities);
36+
Assert.NotEqual(UnitsNetSetup.Default.Quantities, unitAbbreviationCache.Quantities);
3737
Assert.Equal("g", unitAbbreviationCache.GetUnitAbbreviations(MassUnit.Gram, AmericanCulture)[0]);
3838
Assert.Empty(unitAbbreviationCache.GetUnitAbbreviations(HowMuchUnit.Some, AmericanCulture));
3939
Assert.Throws<UnitNotFoundException>(() => unitAbbreviationCache.GetUnitAbbreviations(LengthUnit.Meter));
@@ -44,7 +44,7 @@ public void CreateDefault_ReturnsAnAbbreviationCacheWithDefaultQuantityInfoLooku
4444
{
4545
var unitAbbreviationCache = UnitAbbreviationsCache.CreateDefault();
4646

47-
Assert.Equal(UnitsNetSetup.Default.QuantityInfoLookup, unitAbbreviationCache.Quantities);
47+
Assert.Equal(UnitsNetSetup.Default.Quantities, unitAbbreviationCache.Quantities);
4848
Assert.Equal("g", unitAbbreviationCache.GetUnitAbbreviations(MassUnit.Gram, AmericanCulture)[0]);
4949
Assert.Throws<UnitNotFoundException>(() => unitAbbreviationCache.GetUnitAbbreviations(HowMuchUnit.Some));
5050
}

UnitsNet.Tests/UnitParserTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public void Constructor_WithQuantitiesCreatesNewAbbreviationsCacheAndNewQuantity
1414
var unitParser = new UnitParser([Mass.Info]);
1515
Assert.NotNull(unitParser.Abbreviations);
1616
Assert.NotEqual(UnitAbbreviationsCache.Default, unitParser.Abbreviations);
17-
Assert.NotEqual(UnitsNetSetup.Default.QuantityInfoLookup, unitParser.Quantities);
17+
Assert.NotEqual(UnitsNetSetup.Default.Quantities, unitParser.Quantities);
1818
}
1919

2020
[Fact]
@@ -33,7 +33,7 @@ public void CreateDefault_CreatesNewAbbreviationsCacheWithDefaultQuantities()
3333
var unitParser = UnitParser.CreateDefault();
3434
Assert.NotNull(unitParser.Abbreviations);
3535
Assert.NotEqual(UnitAbbreviationsCache.Default, unitParser.Abbreviations);
36-
Assert.Equal(UnitsNetSetup.Default.QuantityInfoLookup, unitParser.Quantities);
36+
Assert.Equal(UnitsNetSetup.Default.Quantities, unitParser.Quantities);
3737
}
3838

3939
[Theory]

UnitsNet/CustomCode/Quantity.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ namespace UnitsNet
44
{
55
public static partial class Quantity
66
{
7-
private static QuantityInfoLookup Quantities => UnitsNetSetup.Default.QuantityInfoLookup;
7+
private static QuantityInfoLookup Quantities => UnitsNetSetup.Default.Quantities;
88
private static QuantityParser QuantityParser => UnitsNetSetup.Default.QuantityParser;
99
private static UnitParser UnitParser => UnitsNetSetup.Default.UnitParser;
1010

UnitsNet/CustomCode/UnitAbbreviationsCache.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public sealed class UnitAbbreviationsCache
4040
/// information about quantities and their associated units. It is used internally to map units
4141
/// to their abbreviations and vice versa.
4242
/// </remarks>
43-
internal QuantityInfoLookup Quantities { get; }
43+
public QuantityInfoLookup Quantities { get; }
4444

4545
/// <summary>
4646
/// Culture name to abbreviations. To add a custom default abbreviation, add to the beginning of the list.
@@ -52,7 +52,7 @@ public sealed class UnitAbbreviationsCache
5252
/// </summary>
5353
/// <returns>Instance for mapping any of the built-in units.</returns>
5454
public UnitAbbreviationsCache()
55-
:this(UnitsNetSetup.Default.QuantityInfoLookup)
55+
:this(UnitsNetSetup.Default.Quantities)
5656
{
5757
}
5858

UnitsNet/CustomCode/UnitParser.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public UnitParser(UnitAbbreviationsCache unitAbbreviationsCache)
6161
/// This property provides access to the <see cref="QuantityInfoLookup" /> that contains
6262
/// information about all quantities and their associated units.
6363
/// </remarks>
64-
internal QuantityInfoLookup Quantities
64+
public QuantityInfoLookup Quantities
6565
{
6666
get => Abbreviations.Quantities;
6767
}

UnitsNet/CustomCode/UnitsNetSetup.cs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
// Licensed under MIT No Attribution, see LICENSE file at the root.
22
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
33

4-
using System;
5-
using System.Collections.Generic;
6-
using System.Linq;
7-
using UnitsNet.Units;
8-
94
namespace UnitsNet;
105

116
/// <summary>
@@ -44,7 +39,7 @@ public UnitsNetSetup(IEnumerable<QuantityInfo> quantityInfos, UnitConverter unit
4439
Formatter = new QuantityFormatter(unitAbbreviations);
4540
UnitParser = new UnitParser(unitAbbreviations);
4641
QuantityParser = new QuantityParser(unitAbbreviations);
47-
QuantityInfoLookup = quantityInfoLookup;
42+
Quantities = quantityInfoLookup;
4843
}
4944

5045
/// <summary>
@@ -88,8 +83,5 @@ public UnitsNetSetup(IEnumerable<QuantityInfo> quantityInfos, UnitConverter unit
8883
/// <summary>
8984
/// The quantities and units that are loaded.
9085
/// </summary>
91-
/// <remarks>
92-
/// Access type is <c>internal</c> until this class is matured and ready for external use.
93-
/// </remarks>
94-
internal QuantityInfoLookup QuantityInfoLookup { get; }
86+
public QuantityInfoLookup Quantities { get; }
9587
}

UnitsNet/Extensions/LinearQuantityExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,8 +88,8 @@ public static TQuantity Sum<TQuantity>(this IEnumerable<TQuantity> quantities)
8888
{
8989
return default!;
9090
}
91-
92-
return (TQuantity)UnitsNetSetup.Default.QuantityInfoLookup.GetQuantityInfo(typeof(TQuantity)).Zero;
91+
92+
return (TQuantity)UnitsNetSetup.Default.Quantities.GetQuantityInfo(typeof(TQuantity)).Zero;
9393
#endif
9494
}
9595

@@ -107,7 +107,7 @@ public static TQuantity Sum<TQuantity>(this IEnumerable<TQuantity> quantities)
107107
return firstQuantity.QuantityInfo.Create(sumOfValues, resultUnit);
108108
#endif
109109
}
110-
110+
111111
/// <summary>
112112
/// Computes the sum of a sequence of quantities by applying a specified selector function to each element of the
113113
/// sequence.

UnitsNet/QuantityInfoLookup.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ namespace UnitsNet;
1818
/// <remarks>
1919
/// Access type is <c>internal</c> until this class is matured and ready for external use.
2020
/// </remarks>
21-
internal class QuantityInfoLookup
21+
public class QuantityInfoLookup
2222
{
2323
private readonly QuantityInfo[] _quantities;
2424
private readonly Lazy<QuantityByNameLookupDictionary> _quantitiesByName;

UnitsNet/UnitConverter.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,7 @@ public static bool TryConvert(double fromValue, Enum fromUnitValue, Enum toUnitV
326326
/// <exception cref="AmbiguousUnitParseException">More than one unit matches the abbreviation.</exception>
327327
public static double ConvertByName(double fromValue, string quantityName, string fromUnitName, string toUnitName)
328328
{
329-
QuantityInfoLookup quantities = UnitsNetSetup.Default.QuantityInfoLookup;
329+
QuantityInfoLookup quantities = UnitsNetSetup.Default.Quantities;
330330
UnitInfo fromUnit = quantities.GetUnitByName(quantityName, fromUnitName);
331331
UnitInfo toUnit = quantities.GetUnitByName(quantityName, toUnitName);
332332
return Quantity.From(fromValue, fromUnit.Value).As(toUnit.Value);
@@ -352,7 +352,7 @@ public static double ConvertByName(double fromValue, string quantityName, string
352352
/// <returns>True if conversion was successful.</returns>
353353
public static bool TryConvertByName(double inputValue, string quantityName, string fromUnit, string toUnit, out double result)
354354
{
355-
QuantityInfoLookup quantities = UnitsNetSetup.Default.QuantityInfoLookup;
355+
QuantityInfoLookup quantities = UnitsNetSetup.Default.Quantities;
356356
if (quantities.TryGetUnitByName(quantityName, fromUnit, out UnitInfo? fromUnitInfo) &&
357357
quantities.TryGetUnitByName(quantityName, toUnit, out UnitInfo? toUnitInfo) &&
358358
Quantity.TryFrom(inputValue, fromUnitInfo.Value, out IQuantity? quantity))
@@ -449,7 +449,7 @@ public static double ConvertByAbbreviation(double fromValue, string quantityName
449449
/// <exception cref="AmbiguousUnitParseException">More than one unit matches the abbreviation.</exception>
450450
public static double ConvertByAbbreviation(double fromValue, string quantityName, string fromUnitAbbrev, string toUnitAbbrev, IFormatProvider? formatProvider)
451451
{
452-
QuantityInfoLookup quantities = UnitsNetSetup.Default.QuantityInfoLookup;
452+
QuantityInfoLookup quantities = UnitsNetSetup.Default.Quantities;
453453
UnitParser unitParser = UnitsNetSetup.Default.UnitParser;
454454
QuantityInfo quantityInfo = quantities.GetQuantityByName(quantityName);
455455
Enum fromUnit = unitParser.Parse(fromUnitAbbrev, quantityInfo.UnitType, formatProvider); // ex: ("m", LengthUnit) => LengthUnit.Meter
@@ -531,7 +531,7 @@ public static bool TryConvertByAbbreviation(double fromValue, string quantityNam
531531
public static bool TryConvertByAbbreviation(double fromValue, string quantityName, string fromUnitAbbrev, string toUnitAbbrev, out double result,
532532
IFormatProvider? formatProvider)
533533
{
534-
QuantityInfoLookup quantities = UnitsNetSetup.Default.QuantityInfoLookup;
534+
QuantityInfoLookup quantities = UnitsNetSetup.Default.Quantities;
535535
UnitParser unitParser = UnitsNetSetup.Default.UnitParser;
536536
if (!quantities.TryGetQuantityByName(quantityName, out QuantityInfo? quantityInfo) )
537537
{

0 commit comments

Comments
 (0)