Skip to content

Commit 81ae3c7

Browse files
committed
Merge pull request #162 from eriove/feature/massflowoverloads
Add overloads for MassFlow and fuel consumption
2 parents 4c2e6a0 + edbbd77 commit 81ae3c7

File tree

8 files changed

+74
-2
lines changed

8 files changed

+74
-2
lines changed

UnitsNet.Tests/CustomCode/BrakeSpecificFuelConsumptionTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,12 @@ public void DoubleDividedByBrakeSpecificFuelConsumptionEqualsSpecificEnergy()
4646
SpecificEnergy massFlow = 2.0 / BrakeSpecificFuelConsumption.FromKilogramsPerJoule(4.0);
4747
Assert.AreEqual(SpecificEnergy.FromJoulesPerKilogram(0.5), massFlow);
4848
}
49+
50+
[Test]
51+
public void BrakeSpecificFuelConsumptionTimesSpecificEnergyEqualsEnergy()
52+
{
53+
double value = BrakeSpecificFuelConsumption.FromKilogramsPerJoule(20.0) * SpecificEnergy.FromJoulesPerKilogram(10.0);
54+
Assert.AreEqual(value, 200.0);
55+
}
4956
}
5057
}

UnitsNet.Tests/CustomCode/MassFlowTests.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,5 +87,12 @@ public void MassFlowDividedByPowerEqualsBrakeSpecificFuelConsumption()
8787
BrakeSpecificFuelConsumption bsfc = MassFlow.FromTonnesPerDay(20) / Power.FromKilowatts(20.0 / 24.0 * 1e6 / 180.0);
8888
Assert.AreEqual(bsfc.GramsPerKiloWattHour, 180.0, 1e-11);
8989
}
90+
91+
[Test]
92+
public void MassFlowTimesSpecificEnergyEqualsPower()
93+
{
94+
Power power = MassFlow.FromKilogramsPerSecond(20.0) * SpecificEnergy.FromJoulesPerKilogram(10.0);
95+
Assert.AreEqual(power, Power.FromWatts(200.0));
96+
}
9097
}
9198
}

UnitsNet.Tests/CustomCode/PowerTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,19 @@ public void PowerTimesBrakeSpecificFuelConsumptionEqualsMassFlow()
113113
MassFlow massFlow = Power.FromKilowatts(20.0 / 24.0 * 1e6 / 180.0) * BrakeSpecificFuelConsumption.FromGramsPerKiloWattHour(180.0);
114114
Assert.AreEqual(massFlow.TonnesPerDay, 20.0, 1e-11);
115115
}
116+
117+
[Test]
118+
public void PowerDividedByMassFlowEqualsSpecificEnergy()
119+
{
120+
SpecificEnergy specificEnergy = Power.FromWatts(15.0) / MassFlow.FromKilogramsPerSecond(3);
121+
Assert.AreEqual(specificEnergy, SpecificEnergy.FromJoulesPerKilogram(5));
122+
}
123+
124+
[Test]
125+
public void PowerDividedBySpecificEnergyEqualsMassFlow()
126+
{
127+
MassFlow massFlow = Power.FromWatts(15.0) / SpecificEnergy.FromJoulesPerKilogram(3);
128+
Assert.AreEqual(massFlow, MassFlow.FromKilogramsPerSecond(5));
129+
}
116130
}
117131
}

UnitsNet.Tests/CustomCode/SpecificEnergyTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,5 +62,19 @@ public void DoubleDividedBySpecificEnergyEqualsBrakeSpecificFuelConsumption()
6262
BrakeSpecificFuelConsumption bsfc = 2.0 / SpecificEnergy.FromJoulesPerKilogram(4.0);
6363
Assert.AreEqual(BrakeSpecificFuelConsumption.FromKilogramsPerJoule(0.5), bsfc);
6464
}
65+
66+
[Test]
67+
public void SpecificEnergyTimesMassFlowEqualsPower()
68+
{
69+
Power power = SpecificEnergy.FromJoulesPerKilogram(10.0) * MassFlow.FromKilogramsPerSecond(20.0);
70+
Assert.AreEqual(power, Power.FromWatts(200.0));
71+
}
72+
73+
[Test]
74+
public void SpecificEnergyTimesBrakeSpecificFuelConsumptionEqualsEnergy()
75+
{
76+
double value = SpecificEnergy.FromJoulesPerKilogram(10.0) * BrakeSpecificFuelConsumption.FromKilogramsPerJoule(20.0);
77+
Assert.AreEqual(value, 200.0);
78+
}
6579
}
6680
}

UnitsNet/CustomCode/UnitClasses/BrakeSpecificFuelConsumption.extra.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,10 @@ public partial struct BrakeSpecificFuelConsumption
3232
{
3333
return SpecificEnergy.FromJoulesPerKilogram(value / bsfc.KilogramsPerJoule);
3434
}
35+
36+
public static double operator *(BrakeSpecificFuelConsumption bsfc, SpecificEnergy specificEnergy)
37+
{
38+
return specificEnergy.JoulesPerKilogram * bsfc.KilogramsPerJoule;
39+
}
3540
}
3641
}

UnitsNet/CustomCode/UnitClasses/MassFlow.extra.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,10 @@ public partial struct MassFlow
5454
{
5555
return BrakeSpecificFuelConsumption.FromKilogramsPerJoule(massFlow.KilogramsPerSecond / power.Watts);
5656
}
57+
58+
public static Power operator *(MassFlow massFlow, SpecificEnergy specificEnergy)
59+
{
60+
return Power.FromWatts(massFlow.KilogramsPerSecond * specificEnergy.JoulesPerKilogram);
61+
}
5762
}
5863
}

UnitsNet/CustomCode/UnitClasses/Power.extra.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,15 @@ public partial struct Power
6969
{
7070
return MassFlow.FromKilogramsPerSecond(bsfc.KilogramsPerJoule * power.Watts);
7171
}
72+
73+
public static SpecificEnergy operator /(Power power, MassFlow massFlow)
74+
{
75+
return SpecificEnergy.FromJoulesPerKilogram(power.Watts / massFlow.KilogramsPerSecond);
76+
}
77+
78+
public static MassFlow operator /(Power power, SpecificEnergy specificEnergy)
79+
{
80+
return MassFlow.FromKilogramsPerSecond(power.Watts / specificEnergy.JoulesPerKilogram);
81+
}
7282
}
7383
}

UnitsNet/CustomCode/UnitClasses/SpecificEnergy.extra.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,19 @@ public partial struct SpecificEnergy
3333
return Energy.FromJoules(specificEnergy.JoulesPerKilogram*mass.Kilograms);
3434
}
3535

36-
public static BrakeSpecificFuelConsumption operator /(double value, SpecificEnergy bsfc)
36+
public static BrakeSpecificFuelConsumption operator /(double value, SpecificEnergy specificEnergy)
3737
{
38-
return BrakeSpecificFuelConsumption.FromKilogramsPerJoule(value / bsfc.JoulesPerKilogram);
38+
return BrakeSpecificFuelConsumption.FromKilogramsPerJoule(value / specificEnergy.JoulesPerKilogram);
39+
}
40+
41+
public static double operator *(SpecificEnergy specificEnergy, BrakeSpecificFuelConsumption bsfc)
42+
{
43+
return specificEnergy.JoulesPerKilogram * bsfc.KilogramsPerJoule;
44+
}
45+
46+
public static Power operator *(SpecificEnergy specificEnergy, MassFlow massFlow)
47+
{
48+
return Power.FromWatts(massFlow.KilogramsPerSecond * specificEnergy.JoulesPerKilogram);
3949
}
4050
}
4151
}

0 commit comments

Comments
 (0)