Skip to content

Commit d585e55

Browse files
committed
Merge pull request #86 from FabioCZ/energy-units
Add more units for energy BritishThermalUnit Calorie (kilo) ElectronVolt FootPound Erg WattHour (kilo, mega, giga)
2 parents 5c1b289 + 7cec179 commit d585e55

File tree

7 files changed

+447
-2
lines changed

7 files changed

+447
-2
lines changed

UnitsNet.Tests/CustomCode/EnergyTests.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,55 @@ public class EnergyTests : EnergyTestsBase
3030
protected override double JoulesInOneJoule { get { return 1; } }
3131
protected override double KilojoulesInOneJoule { get { return 1E-3; } }
3232
protected override double MegajoulesInOneJoule { get { return 1E-6; } }
33+
34+
protected override double BritishThermalUnitsInOneJoule
35+
{
36+
get { return 0.00094781712; }
37+
}
38+
39+
protected override double CaloriesInOneJoule
40+
{
41+
get { return 0.239005736; }
42+
}
43+
44+
protected override double ElectronVoltsInOneJoule
45+
{
46+
get { return 6.241509343260179e18; }
47+
}
48+
49+
protected override double ErgsInOneJoule
50+
{
51+
get { return 10000000; }
52+
}
53+
54+
protected override double FootPoundsInOneJoule
55+
{
56+
get { return 0.737562149; }
57+
}
58+
59+
protected override double GigawattHoursInOneJoule
60+
{
61+
get { return 2.77777778e-13; }
62+
}
63+
64+
protected override double KilocaloriesInOneJoule
65+
{
66+
get { return 0.00023900573614; }
67+
}
68+
69+
protected override double KilowattHoursInOneJoule
70+
{
71+
get { return 2.77777778e-7; }
72+
}
73+
74+
protected override double MegawattHoursInOneJoule
75+
{
76+
get { return 2.77777778e-10; }
77+
}
78+
79+
protected override double WattHoursInOneJoule
80+
{
81+
get { return 0.000277777778; }
82+
}
3383
}
3484
}

UnitsNet.Tests/GeneratedCode/EnergyTestsBase.g.cs

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,49 +36,109 @@ namespace UnitsNet.Tests
3636
// ReSharper disable once PartialTypeWithSinglePart
3737
public abstract partial class EnergyTestsBase
3838
{
39+
protected abstract double BritishThermalUnitsInOneJoule { get; }
40+
protected abstract double CaloriesInOneJoule { get; }
41+
protected abstract double ElectronVoltsInOneJoule { get; }
42+
protected abstract double ErgsInOneJoule { get; }
43+
protected abstract double FootPoundsInOneJoule { get; }
44+
protected abstract double GigawattHoursInOneJoule { get; }
3945
protected abstract double JoulesInOneJoule { get; }
46+
protected abstract double KilocaloriesInOneJoule { get; }
4047
protected abstract double KilojoulesInOneJoule { get; }
48+
protected abstract double KilowattHoursInOneJoule { get; }
4149
protected abstract double MegajoulesInOneJoule { get; }
50+
protected abstract double MegawattHoursInOneJoule { get; }
51+
protected abstract double WattHoursInOneJoule { get; }
4252

4353
// ReSharper disable VirtualMemberNeverOverriden.Global
54+
protected virtual double BritishThermalUnitsTolerance { get { return 1e-5; } }
55+
protected virtual double CaloriesTolerance { get { return 1e-5; } }
56+
protected virtual double ElectronVoltsTolerance { get { return 1e-5; } }
57+
protected virtual double ErgsTolerance { get { return 1e-5; } }
58+
protected virtual double FootPoundsTolerance { get { return 1e-5; } }
59+
protected virtual double GigawattHoursTolerance { get { return 1e-5; } }
4460
protected virtual double JoulesTolerance { get { return 1e-5; } }
61+
protected virtual double KilocaloriesTolerance { get { return 1e-5; } }
4562
protected virtual double KilojoulesTolerance { get { return 1e-5; } }
63+
protected virtual double KilowattHoursTolerance { get { return 1e-5; } }
4664
protected virtual double MegajoulesTolerance { get { return 1e-5; } }
65+
protected virtual double MegawattHoursTolerance { get { return 1e-5; } }
66+
protected virtual double WattHoursTolerance { get { return 1e-5; } }
4767
// ReSharper restore VirtualMemberNeverOverriden.Global
4868

4969
[Test]
5070
public void JouleToEnergyUnits()
5171
{
5272
Energy joule = Energy.FromJoules(1);
73+
Assert.AreEqual(BritishThermalUnitsInOneJoule, joule.BritishThermalUnits, BritishThermalUnitsTolerance);
74+
Assert.AreEqual(CaloriesInOneJoule, joule.Calories, CaloriesTolerance);
75+
Assert.AreEqual(ElectronVoltsInOneJoule, joule.ElectronVolts, ElectronVoltsTolerance);
76+
Assert.AreEqual(ErgsInOneJoule, joule.Ergs, ErgsTolerance);
77+
Assert.AreEqual(FootPoundsInOneJoule, joule.FootPounds, FootPoundsTolerance);
78+
Assert.AreEqual(GigawattHoursInOneJoule, joule.GigawattHours, GigawattHoursTolerance);
5379
Assert.AreEqual(JoulesInOneJoule, joule.Joules, JoulesTolerance);
80+
Assert.AreEqual(KilocaloriesInOneJoule, joule.Kilocalories, KilocaloriesTolerance);
5481
Assert.AreEqual(KilojoulesInOneJoule, joule.Kilojoules, KilojoulesTolerance);
82+
Assert.AreEqual(KilowattHoursInOneJoule, joule.KilowattHours, KilowattHoursTolerance);
5583
Assert.AreEqual(MegajoulesInOneJoule, joule.Megajoules, MegajoulesTolerance);
84+
Assert.AreEqual(MegawattHoursInOneJoule, joule.MegawattHours, MegawattHoursTolerance);
85+
Assert.AreEqual(WattHoursInOneJoule, joule.WattHours, WattHoursTolerance);
5686
}
5787

5888
[Test]
5989
public void FromValueAndUnit()
6090
{
91+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.BritishThermalUnit).BritishThermalUnits, BritishThermalUnitsTolerance);
92+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.Calorie).Calories, CaloriesTolerance);
93+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.ElectronVolt).ElectronVolts, ElectronVoltsTolerance);
94+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.Erg).Ergs, ErgsTolerance);
95+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.FootPound).FootPounds, FootPoundsTolerance);
96+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.GigawattHour).GigawattHours, GigawattHoursTolerance);
6197
Assert.AreEqual(1, Energy.From(1, EnergyUnit.Joule).Joules, JoulesTolerance);
98+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.Kilocalorie).Kilocalories, KilocaloriesTolerance);
6299
Assert.AreEqual(1, Energy.From(1, EnergyUnit.Kilojoule).Kilojoules, KilojoulesTolerance);
100+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.KilowattHour).KilowattHours, KilowattHoursTolerance);
63101
Assert.AreEqual(1, Energy.From(1, EnergyUnit.Megajoule).Megajoules, MegajoulesTolerance);
102+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.MegawattHour).MegawattHours, MegawattHoursTolerance);
103+
Assert.AreEqual(1, Energy.From(1, EnergyUnit.WattHour).WattHours, WattHoursTolerance);
64104
}
65105

66106
[Test]
67107
public void As()
68108
{
69109
var joule = Energy.FromJoules(1);
110+
Assert.AreEqual(BritishThermalUnitsInOneJoule, joule.As(EnergyUnit.BritishThermalUnit), BritishThermalUnitsTolerance);
111+
Assert.AreEqual(CaloriesInOneJoule, joule.As(EnergyUnit.Calorie), CaloriesTolerance);
112+
Assert.AreEqual(ElectronVoltsInOneJoule, joule.As(EnergyUnit.ElectronVolt), ElectronVoltsTolerance);
113+
Assert.AreEqual(ErgsInOneJoule, joule.As(EnergyUnit.Erg), ErgsTolerance);
114+
Assert.AreEqual(FootPoundsInOneJoule, joule.As(EnergyUnit.FootPound), FootPoundsTolerance);
115+
Assert.AreEqual(GigawattHoursInOneJoule, joule.As(EnergyUnit.GigawattHour), GigawattHoursTolerance);
70116
Assert.AreEqual(JoulesInOneJoule, joule.As(EnergyUnit.Joule), JoulesTolerance);
117+
Assert.AreEqual(KilocaloriesInOneJoule, joule.As(EnergyUnit.Kilocalorie), KilocaloriesTolerance);
71118
Assert.AreEqual(KilojoulesInOneJoule, joule.As(EnergyUnit.Kilojoule), KilojoulesTolerance);
119+
Assert.AreEqual(KilowattHoursInOneJoule, joule.As(EnergyUnit.KilowattHour), KilowattHoursTolerance);
72120
Assert.AreEqual(MegajoulesInOneJoule, joule.As(EnergyUnit.Megajoule), MegajoulesTolerance);
121+
Assert.AreEqual(MegawattHoursInOneJoule, joule.As(EnergyUnit.MegawattHour), MegawattHoursTolerance);
122+
Assert.AreEqual(WattHoursInOneJoule, joule.As(EnergyUnit.WattHour), WattHoursTolerance);
73123
}
74124

75125
[Test]
76126
public void ConversionRoundTrip()
77127
{
78128
Energy joule = Energy.FromJoules(1);
129+
Assert.AreEqual(1, Energy.FromBritishThermalUnits(joule.BritishThermalUnits).Joules, BritishThermalUnitsTolerance);
130+
Assert.AreEqual(1, Energy.FromCalories(joule.Calories).Joules, CaloriesTolerance);
131+
Assert.AreEqual(1, Energy.FromElectronVolts(joule.ElectronVolts).Joules, ElectronVoltsTolerance);
132+
Assert.AreEqual(1, Energy.FromErgs(joule.Ergs).Joules, ErgsTolerance);
133+
Assert.AreEqual(1, Energy.FromFootPounds(joule.FootPounds).Joules, FootPoundsTolerance);
134+
Assert.AreEqual(1, Energy.FromGigawattHours(joule.GigawattHours).Joules, GigawattHoursTolerance);
79135
Assert.AreEqual(1, Energy.FromJoules(joule.Joules).Joules, JoulesTolerance);
136+
Assert.AreEqual(1, Energy.FromKilocalories(joule.Kilocalories).Joules, KilocaloriesTolerance);
80137
Assert.AreEqual(1, Energy.FromKilojoules(joule.Kilojoules).Joules, KilojoulesTolerance);
138+
Assert.AreEqual(1, Energy.FromKilowattHours(joule.KilowattHours).Joules, KilowattHoursTolerance);
81139
Assert.AreEqual(1, Energy.FromMegajoules(joule.Megajoules).Joules, MegajoulesTolerance);
140+
Assert.AreEqual(1, Energy.FromMegawattHours(joule.MegawattHours).Joules, MegawattHoursTolerance);
141+
Assert.AreEqual(1, Energy.FromWattHours(joule.WattHours).Joules, WattHoursTolerance);
82142
}
83143

84144
[Test]

UnitsNet.Tests/UnitsNet.Tests.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
</ItemGroup>
5656
<ItemGroup>
5757
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
58+
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
5859
</ItemGroup>
5960
<ItemGroup>
6061
<ProjectReference Include="..\UnitsNet\UnitsNet.Net35.csproj">

UnitsNet/GeneratedCode/Enums/EnergyUnit.g.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,18 @@ namespace UnitsNet.Units
2525
public enum EnergyUnit
2626
{
2727
Undefined = 0,
28+
BritishThermalUnit,
29+
Calorie,
30+
ElectronVolt,
31+
Erg,
32+
FootPound,
33+
GigawattHour,
2834
Joule,
35+
Kilocalorie,
2936
Kilojoule,
37+
KilowattHour,
3038
Megajoule,
39+
MegawattHour,
40+
WattHour,
3141
}
3242
}

0 commit comments

Comments
 (0)