Skip to content

Commit 75ec1c2

Browse files
committed
All units implemented two operator overloads that did not really make sense.
Changed this for all units. Updated tests. Example 1: Force operator *(Force left, Force right); What is the result of multiplying two forces? Although it can be done, I don't see the need for it and will remove it until a need is found. Example 2: - public static Force operator /(Force left, Force right) + public static double operator /(Force left, Force right) The result of dividing one force with another should be the ratio, not a new force.
1 parent d482c6c commit 75ec1c2

File tree

10 files changed

+16
-40
lines changed

10 files changed

+16
-40
lines changed

Src/UnitsNet/Force.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,11 +144,6 @@ public static Force FromMassAcceleration(Mass mass, double metersPerSecondSquare
144144
return new Force(left.Newtons - right.Newtons);
145145
}
146146

147-
public static Force operator *(Force left, Force right)
148-
{
149-
return new Force(left.Newtons*right.Newtons);
150-
}
151-
152147
public static Force operator *(double left, Force right)
153148
{
154149
return new Force(left*right.Newtons);
@@ -164,9 +159,9 @@ public static Force FromMassAcceleration(Mass mass, double metersPerSecondSquare
164159
return new Force(left.Newtons/right);
165160
}
166161

167-
public static Force operator /(Force left, Force right)
162+
public static double operator /(Force left, Force right)
168163
{
169-
return new Force(left.Newtons/right.Newtons);
164+
return left.Newtons/right.Newtons;
170165
}
171166

172167
#endregion

Src/UnitsNet/Length.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,19 +199,14 @@ public static Length FromNanometers(double nm)
199199
return FromMeters(left.Meters*right);
200200
}
201201

202-
public static Length operator *(Length left, Length right)
203-
{
204-
return FromMeters(left.Meters*right.Meters);
205-
}
206-
207202
public static Length operator /(Length left, double right)
208203
{
209204
return FromMeters(left.Meters/right);
210205
}
211206

212-
public static Length operator /(Length left, Length right)
207+
public static double operator /(Length left, Length right)
213208
{
214-
return FromMeters(left.Meters/right.Meters);
209+
return left.Meters/right.Meters;
215210
}
216211

217212
#endregion

Src/UnitsNet/Length2d.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -213,11 +213,11 @@ public static Length2d FromMillimeters(double xMillimeters, double yMillimeters)
213213
return FromMeters(x, y);
214214
}
215215

216-
public static Length2d operator /(Length2d left, Length2d right)
216+
public static Vector2 operator /(Length2d left, Length2d right)
217217
{
218218
double x = left.X.Meters/right.X.Meters;
219219
double y = left.Y.Meters/right.Y.Meters;
220-
return FromMeters(x, y);
220+
return new Vector2(x, y);
221221
}
222222

223223
#endregion

Src/UnitsNet/Mass.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -237,14 +237,9 @@ public static Mass FromShortTons(double value)
237237
return new Mass(left*right.Kilograms);
238238
}
239239

240-
public static Mass operator *(Mass left, Mass right)
240+
public static double operator /(Mass left, Mass right)
241241
{
242-
return new Mass(left.Kilograms*right.Kilograms);
243-
}
244-
245-
public static Mass operator /(Mass left, Mass right)
246-
{
247-
return new Mass(left.Kilograms/right.Kilograms);
242+
return left.Kilograms/right.Kilograms;
248243
}
249244

250245
public static Mass operator /(Mass left, double right)

Src/UnitsNet/Pressure.cs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -206,19 +206,14 @@ public static Pressure FromPsi(double psi)
206206
return new Pressure(left*right.Pascals);
207207
}
208208

209-
public static Pressure operator *(Pressure left, Pressure right)
210-
{
211-
return new Pressure(left.Pascals*right.Pascals);
212-
}
213-
214209
public static Pressure operator /(Pressure left, double right)
215210
{
216211
return new Pressure(left.Pascals/right);
217212
}
218213

219-
public static Pressure operator /(Pressure left, Pressure right)
214+
public static double operator /(Pressure left, Pressure right)
220215
{
221-
return new Pressure(left.Pascals/right.Pascals);
216+
return left.Pascals/right.Pascals;
222217
}
223218

224219
#endregion

Tests/ForceTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,10 @@ public void ArithmeticOperators()
4242
Assert.AreEqual(1, (Force.FromNewtons(2) - newton).Newtons, Delta);
4343
Assert.AreEqual(2, (newton + newton).Newtons, Delta);
4444
Assert.AreEqual(1, (Force.FromNewtons(2) - newton).Newtons, Delta);
45-
Assert.AreEqual(10, (newton*Force.FromNewtons(10)).Newtons, Delta);
4645
Assert.AreEqual(10, (newton*10).Newtons, Delta);
4746
Assert.AreEqual(10, (10*newton).Newtons, Delta);
4847
Assert.AreEqual(2, (Force.FromNewtons(10)/5).Newtons, Delta);
49-
Assert.AreEqual(2, (Force.FromNewtons(10)/Force.FromNewtons(5)).Newtons, Delta);
48+
Assert.AreEqual(2, Force.FromNewtons(10)/Force.FromNewtons(5), Delta);
5049
}
5150

5251
[Test]

Tests/Length2dTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ public void ArithmeticOperators()
7373
Assert.AreEqual(4, (Length2d.FromMeters(2, 2)*v).Meters.Y, Delta);
7474
Assert.AreEqual(2, (Length2d.FromMeters(10, 20)/5).Meters.X, Delta);
7575
Assert.AreEqual(4, (Length2d.FromMeters(10, 20)/5).Meters.Y, Delta);
76-
Assert.AreEqual(2, (Length2d.FromMeters(10, 20)/Length2d.FromMeters(5, 5)).Meters.X, Delta);
77-
Assert.AreEqual(4, (Length2d.FromMeters(10, 20)/Length2d.FromMeters(5, 5)).Meters.Y, Delta);
76+
Assert.AreEqual(2, (Length2d.FromMeters(10, 20)/Length2d.FromMeters(5, 5)).X, Delta);
77+
Assert.AreEqual(4, (Length2d.FromMeters(10, 20)/Length2d.FromMeters(5, 5)).Y, Delta);
7878
}
7979

8080
[Test]

Tests/LengthTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,8 @@ public void ArithmeticOperators()
5555
Assert.AreEqual(2, (v + v).Meters, Delta);
5656
Assert.AreEqual(10, (v*10).Meters, Delta);
5757
Assert.AreEqual(10, (10*v).Meters, Delta);
58-
Assert.AreEqual(2, (Length.FromMeters(2)*v).Meters, Delta);
5958
Assert.AreEqual(2, (Length.FromMeters(10)/5).Meters, Delta);
60-
Assert.AreEqual(2, (Length.FromMeters(10)/Length.FromMeters(5)).Meters, Delta);
59+
Assert.AreEqual(2, Length.FromMeters(10)/Length.FromMeters(5), Delta);
6160
}
6261

6362
[Test]

Tests/MassTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,8 @@ public void ArithmeticOperators()
5656
Assert.AreEqual(2, (v + v).Kilograms, Delta);
5757
Assert.AreEqual(10, (v*10).Kilograms, Delta);
5858
Assert.AreEqual(10, (10*v).Kilograms, Delta);
59-
Assert.AreEqual(2, (Mass.FromKilograms(2)*v).Kilograms, Delta);
6059
Assert.AreEqual(2, (Mass.FromKilograms(10)/5).Kilograms, Delta);
61-
Assert.AreEqual(2, (Mass.FromKilograms(10)/Mass.FromKilograms(5)).Kilograms, Delta);
60+
Assert.AreEqual(2, Mass.FromKilograms(10)/Mass.FromKilograms(5), Delta);
6261
}
6362

6463
[Test]

Tests/PressureTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,8 @@ public void ArithmeticOperators()
5252
Assert.AreEqual(2, (v + v).Pascals, Delta);
5353
Assert.AreEqual(10, (v*10).Pascals, Delta);
5454
Assert.AreEqual(10, (10*v).Pascals, Delta);
55-
Assert.AreEqual(2, (Pressure.FromPascals(2)*v).Pascals, Delta);
5655
Assert.AreEqual(2, (Pressure.FromPascals(10)/5).Pascals, Delta);
57-
Assert.AreEqual(2, (Pressure.FromPascals(10)/Pressure.FromPascals(5)).Pascals, Delta);
56+
Assert.AreEqual(2, Pressure.FromPascals(10)/Pressure.FromPascals(5), Delta);
5857
}
5958

6059
[Test]

0 commit comments

Comments
 (0)