Skip to content

Commit 8f98287

Browse files
committed
Added operators
1 parent 27f8de7 commit 8f98287

19 files changed

+266
-2
lines changed

UnitsNet.Tests/CustomCode/AreaTests.cs

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

22+
using NUnit.Framework;
23+
2224
namespace UnitsNet.Tests.CustomCode
2325
{
2426
public class AreaTests : AreaTestsBase
2527
{
28+
[Test]
29+
public void AreaDevidedByLengthEqualsLength()
30+
{
31+
var length = Area.FromSquareMeters(50) / Length.FromMeters(5);
32+
Assert.AreEqual(length, Length.FromMeters(10));
33+
}
34+
2635
protected override double SquareCentimetersInOneSquareMeter
2736
{
2837
get { return 1E4; }

UnitsNet.Tests/CustomCode/ForceTests.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,36 @@
1818
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
21+
using NUnit.Framework;
2122

2223
namespace UnitsNet.Tests.CustomCode
2324
{
2425
public class ForceTests : ForceTestsBase
2526
{
27+
[Test]
28+
public void ForceTimesSpeedEqualsPower()
29+
{
30+
var power = Force.FromNewtons(27.0) * Speed.FromMetersPerSecond(10.0);
31+
Assert.AreEqual(power, Power.FromWatts(270));
32+
}
33+
[Test]
34+
public void SpeedTimesForceEqualsPower()
35+
{
36+
var power = Speed.FromMetersPerSecond(10.0)* Force.FromNewtons(27.0);
37+
Assert.AreEqual(power, Power.FromWatts(270));
38+
}
39+
[Test]
40+
public void ForceDevidedByMassEqualsAcceleration()
41+
{
42+
var acceleration= Force.FromNewtons(27)/Mass.FromKilograms(9);
43+
Assert.AreEqual(acceleration, Acceleration.FromMeterPerSecondSquared(3));
44+
}
45+
[Test]
46+
public void ForceDevidedByAreaEqualsPressure()
47+
{
48+
var pressure=Force.FromNewtons(81)/Area.FromSquareMeters(9);
49+
Assert.AreEqual(pressure, Pressure.FromNewtonsPerSquareMeter(9));
50+
}
2651
protected override double DyneInOneNewton
2752
{
2853
get { return 1E5; }

UnitsNet.Tests/CustomCode/MassFlowTests.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,28 @@
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
2121

22-
2322
using System;
23+
using NUnit.Framework;
24+
using UnitsNet.Units;
2425

2526
namespace UnitsNet.Tests.CustomCode
2627
{
2728
public class MassFlowTests : MassFlowTestsBase
2829
{
30+
// strange bug
31+
[Test]
32+
public void MassFlowTimesTimeSpanEqualsMass()
33+
{
34+
var mass = MassFlow.FromKilogramsPerSecond(20.0) * TimeSpan.FromSeconds(4.0);
35+
Assert.AreEqual(mass, Mass.FromKilograms(80.0));
36+
}
37+
[Test]
38+
public void TimeSpanTimesMassFlowEqualsMass()
39+
{
40+
var mass = TimeSpan.FromSeconds(4.0) * MassFlow.FromKilogramsPerSecond(20.0);
41+
Assert.AreEqual(mass, Mass.FromKilograms(80.0));
42+
}
43+
2944
// TODO Override properties in base class here
3045
protected override double KilogramsPerSecondInOneKilogramPerSecond
3146
{

UnitsNet.Tests/CustomCode/MassTests.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,19 @@
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
2121
using NUnit.Framework;
22+
using System;
2223

2324
namespace UnitsNet.Tests.CustomCode
2425
{
2526
public class MassTests : MassTestsBase
2627
{
28+
[Test]
29+
public void MassDividedByTimeEqualsMassFlow()
30+
{
31+
var massFlow= Mass.FromKilograms(18.0) / TimeSpan.FromSeconds(6);
32+
Assert.AreEqual(massFlow, MassFlow.FromKilogramsPerSecond(3.0));
33+
}
34+
2735
[Test]
2836
public void MassDividedByVolumeEqualsDensity()
2937
{

UnitsNet.Tests/CustomCode/PowerTests.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,43 @@
1818
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
21+
using NUnit.Framework;
22+
using System;
2123

2224
namespace UnitsNet.Tests.CustomCode
2325
{
2426
public class PowerTests : PowerTestsBase
2527
{
28+
[Test]
29+
public void PowerDevidedBySpeedEqualsForce()
30+
{
31+
var force= Power.FromWatts(15.0) / Speed.FromMetersPerSecond(3);
32+
Assert.AreEqual(force, Force.FromNewtons(5));
33+
}
34+
[Test]
35+
public void PowerDevidedByRotationalSpeedEqualsForce()
36+
{
37+
var torque = Power.FromWatts(15.0) / RotationalSpeed.FromRadiansPerSecond(3);
38+
Assert.AreEqual(torque, Torque.FromNewtonMeters(5));
39+
}
40+
[Test]
41+
public void PowerDevidedByTorqueEqualsRotationalSpeed()
42+
{
43+
var rotationalSpeed= Power.FromWatts(15.0) / Torque.FromNewtonMeters(3);
44+
Assert.AreEqual(rotationalSpeed, RotationalSpeed.FromRadiansPerSecond(5));
45+
}
46+
[Test]
47+
public void PowerTimesTimespanEqualsEnergy()
48+
{
49+
var energy = Power.FromWatts(5.0)*TimeSpan.FromSeconds(8.0);
50+
Assert.AreEqual(energy, Energy.FromJoules(40.0));
51+
}
52+
[Test]
53+
public void TimeSpanTimesPowerEqualsEnergy()
54+
{
55+
var energy = TimeSpan.FromSeconds(8.0)* Power.FromWatts(5.0);
56+
Assert.AreEqual(energy, Energy.FromJoules(40.0));
57+
}
2658
protected override double FemtowattsInOneWatt
2759
{
2860
get { return 1e15; }

UnitsNet.Tests/CustomCode/RotationalSpeedTests.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,20 @@
2020
// THE SOFTWARE.
2121

2222
using System;
23+
using NUnit.Framework;
2324

2425
namespace UnitsNet.Tests.CustomCode
2526
{
27+
2628
public class RotationalSpeedTests : RotationalSpeedTestsBase
2729
{
30+
[Test]
31+
public void RotationalSpeedTimesTimeSpanEqualsAngle()
32+
{
33+
var angle = RotationalSpeed.FromRadiansPerSecond(10.0)*TimeSpan.FromSeconds(9.0);
34+
Assert.AreEqual(angle, Angle.FromRadians(90.0));
35+
}
36+
2837
protected override double RadiansPerSecondInOneRevolutionPerSecond
2938
{
3039
get

UnitsNet.Tests/CustomCode/SpecificEnergyTests.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,25 @@
2121

2222

2323
using System;
24+
using NUnit.Framework;
2425

2526
namespace UnitsNet.Tests.CustomCode
2627
{
2728
public class SpecificEnergyTests : SpecificEnergyTestsBase
2829
{
30+
[Test]
31+
public void SpecificEnergyTimesMassEqualsEnergy()
32+
{
33+
var energy = SpecificEnergy.FromJoulesPerKilogram(10.0) * Mass.FromKilograms(20.0);
34+
Assert.AreEqual(energy, Energy.FromJoules(200.0));
35+
}
36+
[Test]
37+
public void MassTimesSpecificEnergyEqualsEnergy()
38+
{
39+
var energy = Mass.FromKilograms(20.0)* SpecificEnergy.FromJoulesPerKilogram(10.0);
40+
Assert.AreEqual(energy, Energy.FromJoules(200.0));
41+
}
42+
2943

3044
// TODO Override properties in base class here
3145
protected override double JoulesPerKilogramInOneJoulePerKilogram

UnitsNet.Tests/CustomCode/TorqueTests.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ public void TorqueDevidedByLengthEqualsForce()
3030
var force = Torque.FromNewtonMeters(4) / Length.FromMeters(2);
3131
Assert.AreEqual(force, Force.FromNewtons(2));
3232
}
33+
[Test]
34+
public void TorqueDevidedByForceEqualsLength()
35+
{
36+
var length= Torque.FromNewtonMeters(4) / Force.FromNewtons(2);
37+
Assert.AreEqual(length, Length.FromMeters(2));
38+
}
3339

3440
protected override double KilogramForceCentimetersInOneNewtonMeter
3541
{

UnitsNet.Tests/CustomCode/VolumeTests.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,18 @@ namespace UnitsNet.Tests.CustomCode
2525
{
2626
public class VolumeTests : VolumeTestsBase
2727
{
28+
[Test]
29+
public void VolumeDividedByLengthEqualsArea()
30+
{
31+
var area = Volume.FromCubicMeters(15) / Length.FromMeters(5);
32+
Assert.AreEqual(area, Area.FromSquareMeters(3));
33+
}
34+
[Test]
35+
public void VolumeDividedByAreaEqualsLength()
36+
{
37+
var length= Volume.FromCubicMeters(15) / Area.FromSquareMeters(5);
38+
Assert.AreEqual(length, Length.FromMeters(3));
39+
}
2840
[Test]
2941
public void VolumeTimesDensityEqualsMass()
3042
{
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Globalization;
4+
using System.Linq;
5+
using System.Text;
6+
using UnitsNet.Units;
7+
8+
9+
namespace UnitsNet
10+
{
11+
public partial struct Area
12+
{
13+
public static Length operator/(Area area, Length length)
14+
{
15+
return Length.FromMeters(area.SquareMeters / length.Meters);
16+
}
17+
18+
}
19+
}

0 commit comments

Comments
 (0)