Skip to content

Commit 187c3d8

Browse files
committed
Merge pull request #116 from eriove/master
Mass flow, specific energy and some new units
2 parents 4c756af + 59d8666 commit 187c3d8

36 files changed

+1994
-3
lines changed

UnitsNet.Tests/CustomCode/AngleTests.cs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,25 @@ protected override double GradiansInOneDegree
3535
get { return 400/360.0; }
3636
}
3737

38+
protected override double ArcminutesInOneDegree
39+
{
40+
get
41+
{
42+
return 60.0;
43+
}
44+
}
45+
3846
protected override double RadiansInOneDegree
3947
{
4048
get { return Math.PI/2/90; }
4149
}
50+
51+
protected override double ArcsecondsInOneDegree
52+
{
53+
get
54+
{
55+
return 3600.0;
56+
}
57+
}
4258
}
4359
}

UnitsNet.Tests/CustomCode/FrequencyTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,5 +59,13 @@ protected override double CyclesPerMinuteInOneHertz
5959
{
6060
get { return 0.016666667; }
6161
}
62+
63+
protected override double RadiansPerSecondInOneHertz
64+
{
65+
get
66+
{
67+
return 2 * Math.PI;
68+
}
69+
}
6270
}
6371
}

UnitsNet.Tests/CustomCode/LengthTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
2121

22+
using System;
23+
2224
namespace UnitsNet.Tests.CustomCode
2325
{
2426
public class LengthTests : LengthTestsBase
@@ -87,5 +89,11 @@ protected override double YardsInOneMeter
8789
{
8890
get { return 1.09361; }
8991
}
92+
93+
protected override double NauticalMilesInOneMeter
94+
{
95+
get
96+
{ return 1.0/1852.0; }
97+
}
9098
}
9199
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// Copyright © 2007 by Initial Force AS. All rights reserved.
2+
// https://github.com/InitialForce/UnitsNet
3+
//
4+
// Permission is hereby granted, free of charge, to any person obtaining a copy
5+
// of this software and associated documentation files (the "Software"), to deal
6+
// in the Software without restriction, including without limitation the rights
7+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
// copies of the Software, and to permit persons to whom the Software is
9+
// furnished to do so, subject to the following conditions:
10+
//
11+
// The above copyright notice and this permission notice shall be included in
12+
// all copies or substantial portions of the Software.
13+
//
14+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20+
// THE SOFTWARE.
21+
22+
23+
using System;
24+
25+
namespace UnitsNet.Tests.CustomCode
26+
{
27+
public class MassFlowTests : MassFlowTestsBase
28+
{
29+
// TODO Override properties in base class here
30+
protected override double KilogramsPerSecondInOneKilogramPerSecond
31+
{
32+
get
33+
{
34+
return 1.0;
35+
}
36+
}
37+
38+
protected override double TonnesPerDayInOneKilogramPerSecond
39+
{
40+
get
41+
{
42+
return (60.0 * 60 * 24 / 1000);
43+
}
44+
}
45+
}
46+
}

UnitsNet.Tests/CustomCode/RotationalSpeedTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,20 @@
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
2121

22+
using System;
23+
2224
namespace UnitsNet.Tests.CustomCode
2325
{
2426
public class RotationalSpeedTests : RotationalSpeedTestsBase
2527
{
28+
protected override double RadiansPerSecondInOneRevolutionPerSecond
29+
{
30+
get
31+
{
32+
return 2 * Math.PI;
33+
}
34+
}
35+
2636
protected override double RevolutionsPerMinuteInOneRevolutionPerSecond
2737
{
2838
get { return 1.0*60; }
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Copyright © 2007 by Initial Force AS. All rights reserved.
2+
// https://github.com/InitialForce/UnitsNet
3+
//
4+
// Permission is hereby granted, free of charge, to any person obtaining a copy
5+
// of this software and associated documentation files (the "Software"), to deal
6+
// in the Software without restriction, including without limitation the rights
7+
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8+
// copies of the Software, and to permit persons to whom the Software is
9+
// furnished to do so, subject to the following conditions:
10+
//
11+
// The above copyright notice and this permission notice shall be included in
12+
// all copies or substantial portions of the Software.
13+
//
14+
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15+
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16+
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17+
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18+
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19+
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20+
// THE SOFTWARE.
21+
22+
23+
using System;
24+
25+
namespace UnitsNet.Tests.CustomCode
26+
{
27+
public class SpecificEnergyTests : SpecificEnergyTestsBase
28+
{
29+
protected override double JoulesPerKilogramInOneJoulePerKilogram
30+
{
31+
get
32+
{
33+
return 1.0;
34+
}
35+
}
36+
37+
protected override double CaloriesPerGramInOneJoulePerKilogram
38+
{
39+
get
40+
{
41+
return 1.0 / (4.184E3);
42+
}
43+
}
44+
45+
protected override double KilocaloriesPerGramInOneJoulePerKilogram
46+
{
47+
get
48+
{
49+
return 1.0 / (4.184E6);
50+
}
51+
}
52+
53+
54+
protected override double KilojoulesPerKilogramInOneJoulePerKilogram
55+
{
56+
get
57+
{
58+
return 1.0E-3;
59+
}
60+
}
61+
62+
protected override double KilowattHoursPerKilogramInOneJoulePerKilogram
63+
{
64+
get
65+
{
66+
return 2.77777778e-7;
67+
}
68+
}
69+
70+
protected override double MegajoulesPerKilogramInOneJoulePerKilogram
71+
{
72+
get
73+
{
74+
return 1.0E-6;
75+
}
76+
}
77+
78+
protected override double MegawattHoursPerKilogramInOneJoulePerKilogram
79+
{
80+
get
81+
{
82+
return 2.77777778E-10;
83+
}
84+
}
85+
86+
protected override double WattHoursPerKilogramInOneJoulePerKilogram
87+
{
88+
get
89+
{
90+
return 1.0 / 3.6e3;
91+
}
92+
}
93+
}
94+
}

UnitsNet.Tests/CustomCode/SpeedTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
2121

22+
using System;
23+
2224
namespace UnitsNet.Tests.CustomCode
2325
{
2426
public class SpeedTests : SpeedTestsBase
@@ -79,5 +81,12 @@ protected override double KilometersPerSecondInOneMeterPerSecond
7981
get { return 1E-3; }
8082
}
8183

84+
protected override double MetersPerHourInOneMeterPerSecond
85+
{
86+
get
87+
{
88+
return 3600.0;
89+
}
90+
}
8291
}
8392
}

UnitsNet.Tests/GeneratedCode/AngleTestsBase.g.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,15 @@ namespace UnitsNet.Tests
3636
// ReSharper disable once PartialTypeWithSinglePart
3737
public abstract partial class AngleTestsBase
3838
{
39+
protected abstract double ArcminutesInOneDegree { get; }
40+
protected abstract double ArcsecondsInOneDegree { get; }
3941
protected abstract double DegreesInOneDegree { get; }
4042
protected abstract double GradiansInOneDegree { get; }
4143
protected abstract double RadiansInOneDegree { get; }
4244

4345
// ReSharper disable VirtualMemberNeverOverriden.Global
46+
protected virtual double ArcminutesTolerance { get { return 1e-5; } }
47+
protected virtual double ArcsecondsTolerance { get { return 1e-5; } }
4448
protected virtual double DegreesTolerance { get { return 1e-5; } }
4549
protected virtual double GradiansTolerance { get { return 1e-5; } }
4650
protected virtual double RadiansTolerance { get { return 1e-5; } }
@@ -50,6 +54,8 @@ public abstract partial class AngleTestsBase
5054
public void DegreeToAngleUnits()
5155
{
5256
Angle degree = Angle.FromDegrees(1);
57+
Assert.AreEqual(ArcminutesInOneDegree, degree.Arcminutes, ArcminutesTolerance);
58+
Assert.AreEqual(ArcsecondsInOneDegree, degree.Arcseconds, ArcsecondsTolerance);
5359
Assert.AreEqual(DegreesInOneDegree, degree.Degrees, DegreesTolerance);
5460
Assert.AreEqual(GradiansInOneDegree, degree.Gradians, GradiansTolerance);
5561
Assert.AreEqual(RadiansInOneDegree, degree.Radians, RadiansTolerance);
@@ -58,6 +64,8 @@ public void DegreeToAngleUnits()
5864
[Test]
5965
public void FromValueAndUnit()
6066
{
67+
Assert.AreEqual(1, Angle.From(1, AngleUnit.Arcminute).Arcminutes, ArcminutesTolerance);
68+
Assert.AreEqual(1, Angle.From(1, AngleUnit.Arcsecond).Arcseconds, ArcsecondsTolerance);
6169
Assert.AreEqual(1, Angle.From(1, AngleUnit.Degree).Degrees, DegreesTolerance);
6270
Assert.AreEqual(1, Angle.From(1, AngleUnit.Gradian).Gradians, GradiansTolerance);
6371
Assert.AreEqual(1, Angle.From(1, AngleUnit.Radian).Radians, RadiansTolerance);
@@ -67,6 +75,8 @@ public void FromValueAndUnit()
6775
public void As()
6876
{
6977
var degree = Angle.FromDegrees(1);
78+
Assert.AreEqual(ArcminutesInOneDegree, degree.As(AngleUnit.Arcminute), ArcminutesTolerance);
79+
Assert.AreEqual(ArcsecondsInOneDegree, degree.As(AngleUnit.Arcsecond), ArcsecondsTolerance);
7080
Assert.AreEqual(DegreesInOneDegree, degree.As(AngleUnit.Degree), DegreesTolerance);
7181
Assert.AreEqual(GradiansInOneDegree, degree.As(AngleUnit.Gradian), GradiansTolerance);
7282
Assert.AreEqual(RadiansInOneDegree, degree.As(AngleUnit.Radian), RadiansTolerance);
@@ -76,6 +86,8 @@ public void As()
7686
public void ConversionRoundTrip()
7787
{
7888
Angle degree = Angle.FromDegrees(1);
89+
Assert.AreEqual(1, Angle.FromArcminutes(degree.Arcminutes).Degrees, ArcminutesTolerance);
90+
Assert.AreEqual(1, Angle.FromArcseconds(degree.Arcseconds).Degrees, ArcsecondsTolerance);
7991
Assert.AreEqual(1, Angle.FromDegrees(degree.Degrees).Degrees, DegreesTolerance);
8092
Assert.AreEqual(1, Angle.FromGradians(degree.Gradians).Degrees, GradiansTolerance);
8193
Assert.AreEqual(1, Angle.FromRadians(degree.Radians).Degrees, RadiansTolerance);

UnitsNet.Tests/GeneratedCode/FrequencyTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public abstract partial class FrequencyTestsBase
4242
protected abstract double HertzInOneHertz { get; }
4343
protected abstract double KilohertzInOneHertz { get; }
4444
protected abstract double MegahertzInOneHertz { get; }
45+
protected abstract double RadiansPerSecondInOneHertz { get; }
4546
protected abstract double TerahertzInOneHertz { get; }
4647

4748
// ReSharper disable VirtualMemberNeverOverriden.Global
@@ -51,6 +52,7 @@ public abstract partial class FrequencyTestsBase
5152
protected virtual double HertzTolerance { get { return 1e-5; } }
5253
protected virtual double KilohertzTolerance { get { return 1e-5; } }
5354
protected virtual double MegahertzTolerance { get { return 1e-5; } }
55+
protected virtual double RadiansPerSecondTolerance { get { return 1e-5; } }
5456
protected virtual double TerahertzTolerance { get { return 1e-5; } }
5557
// ReSharper restore VirtualMemberNeverOverriden.Global
5658

@@ -64,6 +66,7 @@ public void HertzToFrequencyUnits()
6466
Assert.AreEqual(HertzInOneHertz, hertz.Hertz, HertzTolerance);
6567
Assert.AreEqual(KilohertzInOneHertz, hertz.Kilohertz, KilohertzTolerance);
6668
Assert.AreEqual(MegahertzInOneHertz, hertz.Megahertz, MegahertzTolerance);
69+
Assert.AreEqual(RadiansPerSecondInOneHertz, hertz.RadiansPerSecond, RadiansPerSecondTolerance);
6770
Assert.AreEqual(TerahertzInOneHertz, hertz.Terahertz, TerahertzTolerance);
6871
}
6972

@@ -76,6 +79,7 @@ public void FromValueAndUnit()
7679
Assert.AreEqual(1, Frequency.From(1, FrequencyUnit.Hertz).Hertz, HertzTolerance);
7780
Assert.AreEqual(1, Frequency.From(1, FrequencyUnit.Kilohertz).Kilohertz, KilohertzTolerance);
7881
Assert.AreEqual(1, Frequency.From(1, FrequencyUnit.Megahertz).Megahertz, MegahertzTolerance);
82+
Assert.AreEqual(1, Frequency.From(1, FrequencyUnit.RadianPerSecond).RadiansPerSecond, RadiansPerSecondTolerance);
7983
Assert.AreEqual(1, Frequency.From(1, FrequencyUnit.Terahertz).Terahertz, TerahertzTolerance);
8084
}
8185

@@ -89,6 +93,7 @@ public void As()
8993
Assert.AreEqual(HertzInOneHertz, hertz.As(FrequencyUnit.Hertz), HertzTolerance);
9094
Assert.AreEqual(KilohertzInOneHertz, hertz.As(FrequencyUnit.Kilohertz), KilohertzTolerance);
9195
Assert.AreEqual(MegahertzInOneHertz, hertz.As(FrequencyUnit.Megahertz), MegahertzTolerance);
96+
Assert.AreEqual(RadiansPerSecondInOneHertz, hertz.As(FrequencyUnit.RadianPerSecond), RadiansPerSecondTolerance);
9297
Assert.AreEqual(TerahertzInOneHertz, hertz.As(FrequencyUnit.Terahertz), TerahertzTolerance);
9398
}
9499

@@ -102,6 +107,7 @@ public void ConversionRoundTrip()
102107
Assert.AreEqual(1, Frequency.FromHertz(hertz.Hertz).Hertz, HertzTolerance);
103108
Assert.AreEqual(1, Frequency.FromKilohertz(hertz.Kilohertz).Hertz, KilohertzTolerance);
104109
Assert.AreEqual(1, Frequency.FromMegahertz(hertz.Megahertz).Hertz, MegahertzTolerance);
110+
Assert.AreEqual(1, Frequency.FromRadiansPerSecond(hertz.RadiansPerSecond).Hertz, RadiansPerSecondTolerance);
105111
Assert.AreEqual(1, Frequency.FromTerahertz(hertz.Terahertz).Hertz, TerahertzTolerance);
106112
}
107113

UnitsNet.Tests/GeneratedCode/LengthTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public abstract partial class LengthTestsBase
4848
protected abstract double MilesInOneMeter { get; }
4949
protected abstract double MillimetersInOneMeter { get; }
5050
protected abstract double NanometersInOneMeter { get; }
51+
protected abstract double NauticalMilesInOneMeter { get; }
5152
protected abstract double YardsInOneMeter { get; }
5253

5354
// ReSharper disable VirtualMemberNeverOverriden.Global
@@ -63,6 +64,7 @@ public abstract partial class LengthTestsBase
6364
protected virtual double MilesTolerance { get { return 1e-5; } }
6465
protected virtual double MillimetersTolerance { get { return 1e-5; } }
6566
protected virtual double NanometersTolerance { get { return 1e-5; } }
67+
protected virtual double NauticalMilesTolerance { get { return 1e-5; } }
6668
protected virtual double YardsTolerance { get { return 1e-5; } }
6769
// ReSharper restore VirtualMemberNeverOverriden.Global
6870

@@ -82,6 +84,7 @@ public void MeterToLengthUnits()
8284
Assert.AreEqual(MilesInOneMeter, meter.Miles, MilesTolerance);
8385
Assert.AreEqual(MillimetersInOneMeter, meter.Millimeters, MillimetersTolerance);
8486
Assert.AreEqual(NanometersInOneMeter, meter.Nanometers, NanometersTolerance);
87+
Assert.AreEqual(NauticalMilesInOneMeter, meter.NauticalMiles, NauticalMilesTolerance);
8588
Assert.AreEqual(YardsInOneMeter, meter.Yards, YardsTolerance);
8689
}
8790

@@ -100,6 +103,7 @@ public void FromValueAndUnit()
100103
Assert.AreEqual(1, Length.From(1, LengthUnit.Mile).Miles, MilesTolerance);
101104
Assert.AreEqual(1, Length.From(1, LengthUnit.Millimeter).Millimeters, MillimetersTolerance);
102105
Assert.AreEqual(1, Length.From(1, LengthUnit.Nanometer).Nanometers, NanometersTolerance);
106+
Assert.AreEqual(1, Length.From(1, LengthUnit.NauticalMile).NauticalMiles, NauticalMilesTolerance);
103107
Assert.AreEqual(1, Length.From(1, LengthUnit.Yard).Yards, YardsTolerance);
104108
}
105109

@@ -119,6 +123,7 @@ public void As()
119123
Assert.AreEqual(MilesInOneMeter, meter.As(LengthUnit.Mile), MilesTolerance);
120124
Assert.AreEqual(MillimetersInOneMeter, meter.As(LengthUnit.Millimeter), MillimetersTolerance);
121125
Assert.AreEqual(NanometersInOneMeter, meter.As(LengthUnit.Nanometer), NanometersTolerance);
126+
Assert.AreEqual(NauticalMilesInOneMeter, meter.As(LengthUnit.NauticalMile), NauticalMilesTolerance);
122127
Assert.AreEqual(YardsInOneMeter, meter.As(LengthUnit.Yard), YardsTolerance);
123128
}
124129

@@ -138,6 +143,7 @@ public void ConversionRoundTrip()
138143
Assert.AreEqual(1, Length.FromMiles(meter.Miles).Meters, MilesTolerance);
139144
Assert.AreEqual(1, Length.FromMillimeters(meter.Millimeters).Meters, MillimetersTolerance);
140145
Assert.AreEqual(1, Length.FromNanometers(meter.Nanometers).Meters, NanometersTolerance);
146+
Assert.AreEqual(1, Length.FromNauticalMiles(meter.NauticalMiles).Meters, NauticalMilesTolerance);
141147
Assert.AreEqual(1, Length.FromYards(meter.Yards).Meters, YardsTolerance);
142148
}
143149

0 commit comments

Comments
 (0)