Skip to content

Commit 281713e

Browse files
benito5566Benito Martiarenaangularsen
authored
✨Add Duration.Picoseconds (#1567)
Adding picoseconds unit to durations. Co-authored-by: Benito Martiarena <[email protected]> Co-authored-by: Andreas Gullberg Larsen <[email protected]>
1 parent 426ea00 commit 281713e

File tree

15 files changed

+248
-27
lines changed

15 files changed

+248
-27
lines changed

Common/UnitDefinitions/Duration.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
},
129129
"FromUnitToBaseFunc": "{x}",
130130
"FromBaseToUnitFunc": "{x}",
131-
"Prefixes": [ "Nano", "Micro", "Milli" ],
131+
"Prefixes": [ "Pico", "Nano", "Micro", "Milli" ],
132132
"Localization": [
133133
{
134134
"Culture": "en-US",

Common/UnitEnumValues.g.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,8 @@
232232
"Second": 9,
233233
"Week": 10,
234234
"Year365": 11,
235-
"Sol": 15
235+
"Sol": 15,
236+
"Picosecond": 12
236237
},
237238
"DynamicViscosity": {
238239
"Centipoise": 1,

UnitsNet.NanoFramework/GeneratedCode/Quantities/Duration.g.cs

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.NanoFramework/GeneratedCode/Units/DurationUnit.g.cs

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToDurationExtensionsTest.g.cs

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.NumberExtensions/GeneratedCode/NumberToDurationExtensions.g.cs

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

UnitsNet.Tests/CustomCode/DurationTests.cs

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,16 @@ public class DurationTests : DurationTestsBase
3232
protected override double JulianYearsInOneSecond => 3.16880878140289e-08;
3333

3434
protected override double SolsInOneSecond => 1.126440159375963e-5;
35-
35+
36+
protected override double PicosecondsInOneSecond => 1e+12;
37+
3638
[Fact]
3739
public void AllBaseQuantityUnitsAreBaseUnits()
3840
{
39-
Assert.All(Duration.Info.UnitInfos, unitInfo => Assert.Equal(new BaseUnits(time: unitInfo.Value), unitInfo.BaseUnits));
41+
Assert.All(
42+
Duration.Info.UnitInfos,
43+
unitInfo => Assert.Equal(new BaseUnits(time: unitInfo.Value), unitInfo.BaseUnits)
44+
);
4045
}
4146

4247
[Fact]
@@ -73,7 +78,10 @@ public static void ToTimeSpanShouldNotThrowExceptionOnValuesSlightlySmallerThanT
7378
[InlineData(100, Units.DurationUnit.Nanosecond)]
7479
[InlineData(1, Units.DurationUnit.Microsecond)]
7580
[InlineData(1.234, Units.DurationUnit.Millisecond)]
76-
public static void ToTimeSpanShouldNotRoundToMillisecond(double value, Units.DurationUnit unit)
81+
public static void ToTimeSpanShouldNotRoundToMillisecond(
82+
double value,
83+
Units.DurationUnit unit
84+
)
7785
{
7886
Duration duration = Duration.From(value, unit);
7987
TimeSpan timeSpan = duration.ToTimeSpan();
@@ -196,11 +204,22 @@ public void DurationTimesVolumeFlowEqualsVolume()
196204
[InlineData("1 сек", 1, "ru-RU")]
197205
[InlineData("1000 мс", 1, "ru-RU")]
198206
[InlineData("1000 мсек", 1, "ru-RU")]
199-
public void DurationFromStringUsingMultipleAbbreviationsParsedCorrectly(string textValue, double expectedSeconds, string? culture = null)
200-
{
201-
var cultureInfo = culture == null ? CultureInfo.InvariantCulture : CultureInfo.GetCultureInfo(culture);
202-
203-
AssertEx.EqualTolerance(expectedSeconds, Duration.Parse(textValue, cultureInfo).Seconds, SecondsTolerance);
207+
public void DurationFromStringUsingMultipleAbbreviationsParsedCorrectly(
208+
string textValue,
209+
double expectedSeconds,
210+
string? culture = null
211+
)
212+
{
213+
var cultureInfo =
214+
culture == null
215+
? CultureInfo.InvariantCulture
216+
: CultureInfo.GetCultureInfo(culture);
217+
218+
AssertEx.EqualTolerance(
219+
expectedSeconds,
220+
Duration.Parse(textValue, cultureInfo).Seconds,
221+
SecondsTolerance
222+
);
204223
}
205224

206225
[Fact]

0 commit comments

Comments
 (0)