diff --git a/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs b/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs
index 99f4f3f7ee..3b49f16a35 100644
--- a/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs
+++ b/CodeGen/Generators/UnitsNetGen/QuantityGenerator.cs
@@ -77,7 +77,7 @@ namespace UnitsNet
Writer.W("IDecimalQuantity, ");
}
- Writer.WL($"IComparable, IComparable<{_quantity.Name}>, IConvertible, IFormattable");
+ Writer.WL($"IEquatable<{_quantity.Name}>, IComparable, IComparable<{_quantity.Name}>, IConvertible, IFormattable");
Writer.WL($@"
{{
///
@@ -752,16 +752,80 @@ private void GenerateEqualityAndComparison()
return left.Value > right.ToUnit(left.Unit).Value;
}}
+ // We use obsolete attribute to communicate the preferred equality members to use.
+ // CS0809: Obsolete member 'memberA' overrides non-obsolete member 'memberB'.
+ #pragma warning disable CS0809
+
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete(""Consider using Equals(Angle, {_valueType}, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance."")]
+ public static bool operator ==({_quantity.Name} left, {_quantity.Name} right)
+ {{
+ return left.Equals(right);
+ }}
+
+ /// Indicates strict inequality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete(""Consider using Equals(Angle, {_valueType}, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance."")]
+ public static bool operator !=({_quantity.Name} left, {_quantity.Name} right)
+ {{
+ return !(left == right);
+ }}
+
+ ///
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete(""Consider using Equals(Angle, {_valueType}, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance."")]
+ public override bool Equals(object obj)
+ {{
+ if (obj is null || !(obj is {_quantity.Name} otherQuantity))
+ return false;
+
+ return Equals(otherQuantity);
+ }}
+
///
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete(""Consider using Equals(Angle, {_valueType}, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance."")]
+ public bool Equals({_quantity.Name} other)
+ {{
+ return new {{ Value, Unit }}.Equals(new {{ other.Value, other.Unit }});
+ }}
+
+ #pragma warning restore CS0809
+
+ /// Compares the current with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other when converted to the same unit.
+ /// An object to compare with this instance.
+ ///
+ /// is not the same type as this instance.
+ ///
+ /// A value that indicates the relative order of the quantities being compared. The return value has these meanings:
+ ///
+ /// Value Meaning
+ /// - Less than zero This instance precedes in the sort order.
+ /// - Zero This instance occurs in the same position in the sort order as .
+ /// - Greater than zero This instance follows in the sort order.
+ ///
+ ///
public int CompareTo(object obj)
{{
if (obj is null) throw new ArgumentNullException(nameof(obj));
- if (!(obj is {_quantity.Name} obj{_quantity.Name})) throw new ArgumentException(""Expected type {_quantity.Name}."", nameof(obj));
+ if (!(obj is {_quantity.Name} otherQuantity)) throw new ArgumentException(""Expected type {_quantity.Name}."", nameof(obj));
- return CompareTo(obj{_quantity.Name});
+ return CompareTo(otherQuantity);
}}
- ///
+ /// Compares the current with another and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other when converted to the same unit.
+ /// A quantity to compare with this instance.
+ /// A value that indicates the relative order of the quantities being compared. The return value has these meanings:
+ ///
+ /// Value Meaning
+ /// - Less than zero This instance precedes in the sort order.
+ /// - Zero This instance occurs in the same position in the sort order as .
+ /// - Greater than zero This instance follows in the sort order.
+ ///
+ ///
public int CompareTo({_quantity.Name} other)
{{
return _value.CompareTo(other.ToUnit(this.Unit).Value);
@@ -800,7 +864,7 @@ public int CompareTo({_quantity.Name} other)
///
///
/// Note that it is advised against specifying zero difference, due to the nature
- /// of floating point operations and using System.Double internally.
+ /// of floating-point operations and using {_valueType} internally.
///
///
/// The other quantity to compare to.
@@ -987,7 +1051,7 @@ private bool TryToUnit({_quantity.Name}Unit unit, out {_quantity.Name}? converte
_ => null!
}};
- return converted != null;
+ return converted is not null;
}}
///
diff --git a/CodeGen/Generators/UnitsNetGen/UnitTestBaseClassGenerator.cs b/CodeGen/Generators/UnitsNetGen/UnitTestBaseClassGenerator.cs
index 2ca56d24fa..c8ab5cafbc 100644
--- a/CodeGen/Generators/UnitsNetGen/UnitTestBaseClassGenerator.cs
+++ b/CodeGen/Generators/UnitsNetGen/UnitTestBaseClassGenerator.cs
@@ -45,16 +45,32 @@ internal class UnitTestBaseClassGenerator : GeneratorBase
///
private readonly string _numberSuffix;
+ ///
+ /// Other unit, if more than one unit exists for quantity, otherwise same as .
+ ///
+ private readonly Unit _otherOrBaseUnit;
+
+ ///
+ /// Example: "LengthUnit.Centimeter".
+ ///
+ private readonly string _otherOrBaseUnitFullName;
+
public UnitTestBaseClassGenerator(Quantity quantity)
{
_quantity = quantity;
_baseUnit = quantity.Units.FirstOrDefault(u => u.SingularName == _quantity.BaseUnit) ??
throw new ArgumentException($"No unit found with SingularName equal to BaseUnit [{_quantity.BaseUnit}]. This unit must be defined.",
nameof(quantity));
+
_unitEnumName = $"{quantity.Name}Unit";
+
_baseUnitEnglishAbbreviation = GetEnglishAbbreviation(_baseUnit);
_baseUnitFullName = $"{_unitEnumName}.{_baseUnit.SingularName}";
_numberSuffix = quantity.ValueType == "decimal" ? "m" : "";
+
+ // Try to pick another unit, or fall back to base unit if only a single unit.
+ _otherOrBaseUnit = quantity.Units.Where(u => u != _baseUnit).DefaultIfEmpty(_baseUnit).First();
+ _otherOrBaseUnitFullName = $"{_unitEnumName}.{_otherOrBaseUnit.SingularName}";
}
private string GetUnitFullName(Unit unit) => $"{_unitEnumName}.{unit.SingularName}";
@@ -483,6 +499,52 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => {baseUnitVariableName}.CompareTo(null));
}}
+ [Theory]
+ [InlineData(1, {_baseUnitFullName}, 1, {_baseUnitFullName}, true)] // Same value and unit.
+ [InlineData(1, {_baseUnitFullName}, 2, {_baseUnitFullName}, false)] // Different value.
+ [InlineData(2, {_baseUnitFullName}, 1, {_otherOrBaseUnitFullName}, false)] // Different value and unit.");
+ if (_baseUnit != _otherOrBaseUnit)
+ {
+ Writer.WL($@"
+ [InlineData(1, {_baseUnitFullName}, 1, {_otherOrBaseUnitFullName}, false)] // Different unit.");
+ }
+ Writer.WL($@"
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual({_quantity.ValueType} valueA, {_unitEnumName} unitA, {_quantity.ValueType} valueB, {_unitEnumName} unitB, bool expectEqual)
+ {{
+ var a = new {_quantity.Name}(valueA, unitA);
+ var b = new {_quantity.Name}(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }}
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {{
+ var a = {_quantity.Name}.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // ""The result of the expression is always 'false'...""
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }}
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{{
diff --git a/UnitsNet.NumberExtensions.Tests/UnitsNet.NumberExtensions.Tests.csproj b/UnitsNet.NumberExtensions.Tests/UnitsNet.NumberExtensions.Tests.csproj
index b07181b8a3..0c51a316ef 100644
--- a/UnitsNet.NumberExtensions.Tests/UnitsNet.NumberExtensions.Tests.csproj
+++ b/UnitsNet.NumberExtensions.Tests/UnitsNet.NumberExtensions.Tests.csproj
@@ -6,6 +6,7 @@
latest
enable
true
+ CS0618
diff --git a/UnitsNet.Serialization.JsonNet.Tests/UnitsNet.Serialization.JsonNet.Tests.csproj b/UnitsNet.Serialization.JsonNet.Tests/UnitsNet.Serialization.JsonNet.Tests.csproj
index ba0972cf84..0988d87921 100644
--- a/UnitsNet.Serialization.JsonNet.Tests/UnitsNet.Serialization.JsonNet.Tests.csproj
+++ b/UnitsNet.Serialization.JsonNet.Tests/UnitsNet.Serialization.JsonNet.Tests.csproj
@@ -5,6 +5,7 @@
UnitsNet.Serialization.JsonNet.Tests
latest
true
+ CS0618
diff --git a/UnitsNet.Tests/CustomCode/AreaDensityTests.cs b/UnitsNet.Tests/CustomCode/AreaDensityTests.cs
index 8c48f4257f..e5b1b7102d 100644
--- a/UnitsNet.Tests/CustomCode/AreaDensityTests.cs
+++ b/UnitsNet.Tests/CustomCode/AreaDensityTests.cs
@@ -40,7 +40,7 @@ public class AreaDensityTests : AreaDensityTestsBase
public void AreaDensityTimesAreaEqualsMass()
{
Mass massOfOneA4Paper = AreaDensity.FromGramsPerSquareMeter(120) * Area.FromSquareCentimeters(625);
- Assert.Equal(Mass.FromGrams(7.5), massOfOneA4Paper);
+ Assert.Equal(7.5, massOfOneA4Paper.Grams);
}
}
}
diff --git a/UnitsNet.Tests/CustomCode/TemperatureDeltaTests.cs b/UnitsNet.Tests/CustomCode/TemperatureDeltaTests.cs
index 8df12e34e7..320609c8eb 100644
--- a/UnitsNet.Tests/CustomCode/TemperatureDeltaTests.cs
+++ b/UnitsNet.Tests/CustomCode/TemperatureDeltaTests.cs
@@ -55,7 +55,7 @@ public void TemperatureDeltaTimesSpecificEntropyEqualsSpecificEnergy()
public void EntropyTimesTemperatureDeltaEqualsEnergy()
{
Energy energy = Entropy.FromKilojoulesPerKelvin(3) * TemperatureDelta.FromKelvins(7);
- Assert.Equal(Energy.FromKilojoules(21), energy);
+ Assert.Equal(21, energy.Kilojoules);
}
[Fact]
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/AccelerationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/AccelerationTestsBase.g.cs
index 369927031a..af5e035678 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/AccelerationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/AccelerationTestsBase.g.cs
@@ -1104,6 +1104,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => meterpersecondsquared.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, AccelerationUnit.MeterPerSecondSquared, 1, AccelerationUnit.MeterPerSecondSquared, true)] // Same value and unit.
+ [InlineData(1, AccelerationUnit.MeterPerSecondSquared, 2, AccelerationUnit.MeterPerSecondSquared, false)] // Different value.
+ [InlineData(2, AccelerationUnit.MeterPerSecondSquared, 1, AccelerationUnit.CentimeterPerSecondSquared, false)] // Different value and unit.
+ [InlineData(1, AccelerationUnit.MeterPerSecondSquared, 1, AccelerationUnit.CentimeterPerSecondSquared, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, AccelerationUnit unitA, double valueB, AccelerationUnit unitB, bool expectEqual)
+ {
+ var a = new Acceleration(valueA, unitA);
+ var b = new Acceleration(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Acceleration.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/AmountOfSubstanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/AmountOfSubstanceTestsBase.g.cs
index c68625cc20..3b8c2cd02b 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/AmountOfSubstanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/AmountOfSubstanceTestsBase.g.cs
@@ -781,6 +781,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => mole.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, AmountOfSubstanceUnit.Mole, 1, AmountOfSubstanceUnit.Mole, true)] // Same value and unit.
+ [InlineData(1, AmountOfSubstanceUnit.Mole, 2, AmountOfSubstanceUnit.Mole, false)] // Different value.
+ [InlineData(2, AmountOfSubstanceUnit.Mole, 1, AmountOfSubstanceUnit.Centimole, false)] // Different value and unit.
+ [InlineData(1, AmountOfSubstanceUnit.Mole, 1, AmountOfSubstanceUnit.Centimole, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, AmountOfSubstanceUnit unitA, double valueB, AmountOfSubstanceUnit unitB, bool expectEqual)
+ {
+ var a = new AmountOfSubstance(valueA, unitA);
+ var b = new AmountOfSubstance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = AmountOfSubstance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/AmplitudeRatioTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/AmplitudeRatioTestsBase.g.cs
index d7efdd5c91..48ae60db3e 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/AmplitudeRatioTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/AmplitudeRatioTestsBase.g.cs
@@ -422,6 +422,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => decibelvolt.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, AmplitudeRatioUnit.DecibelVolt, 1, AmplitudeRatioUnit.DecibelVolt, true)] // Same value and unit.
+ [InlineData(1, AmplitudeRatioUnit.DecibelVolt, 2, AmplitudeRatioUnit.DecibelVolt, false)] // Different value.
+ [InlineData(2, AmplitudeRatioUnit.DecibelVolt, 1, AmplitudeRatioUnit.DecibelMicrovolt, false)] // Different value and unit.
+ [InlineData(1, AmplitudeRatioUnit.DecibelVolt, 1, AmplitudeRatioUnit.DecibelMicrovolt, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, AmplitudeRatioUnit unitA, double valueB, AmplitudeRatioUnit unitB, bool expectEqual)
+ {
+ var a = new AmplitudeRatio(valueA, unitA);
+ var b = new AmplitudeRatio(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = AmplitudeRatio.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/AngleTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/AngleTestsBase.g.cs
index adba70f32d..73056b7401 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/AngleTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/AngleTestsBase.g.cs
@@ -1366,6 +1366,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => degree.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, AngleUnit.Degree, 1, AngleUnit.Degree, true)] // Same value and unit.
+ [InlineData(1, AngleUnit.Degree, 2, AngleUnit.Degree, false)] // Different value.
+ [InlineData(2, AngleUnit.Degree, 1, AngleUnit.Arcminute, false)] // Different value and unit.
+ [InlineData(1, AngleUnit.Degree, 1, AngleUnit.Arcminute, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, AngleUnit unitA, double valueB, AngleUnit unitB, bool expectEqual)
+ {
+ var a = new Angle(valueA, unitA);
+ var b = new Angle(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Angle.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentEnergyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentEnergyTestsBase.g.cs
index 12ad235f41..0d8a0498a1 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentEnergyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentEnergyTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltamperehour.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ApparentEnergyUnit.VoltampereHour, 1, ApparentEnergyUnit.VoltampereHour, true)] // Same value and unit.
+ [InlineData(1, ApparentEnergyUnit.VoltampereHour, 2, ApparentEnergyUnit.VoltampereHour, false)] // Different value.
+ [InlineData(2, ApparentEnergyUnit.VoltampereHour, 1, ApparentEnergyUnit.KilovoltampereHour, false)] // Different value and unit.
+ [InlineData(1, ApparentEnergyUnit.VoltampereHour, 1, ApparentEnergyUnit.KilovoltampereHour, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ApparentEnergyUnit unitA, double valueB, ApparentEnergyUnit unitB, bool expectEqual)
+ {
+ var a = new ApparentEnergy(valueA, unitA);
+ var b = new ApparentEnergy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ApparentEnergy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentPowerTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentPowerTestsBase.g.cs
index 15d07b25a1..687266feed 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentPowerTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ApparentPowerTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltampere.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ApparentPowerUnit.Voltampere, 1, ApparentPowerUnit.Voltampere, true)] // Same value and unit.
+ [InlineData(1, ApparentPowerUnit.Voltampere, 2, ApparentPowerUnit.Voltampere, false)] // Different value.
+ [InlineData(2, ApparentPowerUnit.Voltampere, 1, ApparentPowerUnit.Gigavoltampere, false)] // Different value and unit.
+ [InlineData(1, ApparentPowerUnit.Voltampere, 1, ApparentPowerUnit.Gigavoltampere, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ApparentPowerUnit unitA, double valueB, ApparentPowerUnit unitB, bool expectEqual)
+ {
+ var a = new ApparentPower(valueA, unitA);
+ var b = new ApparentPower(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ApparentPower.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/AreaDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/AreaDensityTestsBase.g.cs
index d44d1d1a00..145dff5b94 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/AreaDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/AreaDensityTestsBase.g.cs
@@ -407,6 +407,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogrampersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, AreaDensityUnit.KilogramPerSquareMeter, 1, AreaDensityUnit.KilogramPerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, AreaDensityUnit.KilogramPerSquareMeter, 2, AreaDensityUnit.KilogramPerSquareMeter, false)] // Different value.
+ [InlineData(2, AreaDensityUnit.KilogramPerSquareMeter, 1, AreaDensityUnit.GramPerSquareMeter, false)] // Different value and unit.
+ [InlineData(1, AreaDensityUnit.KilogramPerSquareMeter, 1, AreaDensityUnit.GramPerSquareMeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, AreaDensityUnit unitA, double valueB, AreaDensityUnit unitB, bool expectEqual)
+ {
+ var a = new AreaDensity(valueA, unitA);
+ var b = new AreaDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = AreaDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/AreaMomentOfInertiaTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/AreaMomentOfInertiaTestsBase.g.cs
index 3cb17affa9..26ed1bf3a0 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/AreaMomentOfInertiaTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/AreaMomentOfInertiaTestsBase.g.cs
@@ -632,6 +632,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => metertothefourth.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, AreaMomentOfInertiaUnit.MeterToTheFourth, 1, AreaMomentOfInertiaUnit.MeterToTheFourth, true)] // Same value and unit.
+ [InlineData(1, AreaMomentOfInertiaUnit.MeterToTheFourth, 2, AreaMomentOfInertiaUnit.MeterToTheFourth, false)] // Different value.
+ [InlineData(2, AreaMomentOfInertiaUnit.MeterToTheFourth, 1, AreaMomentOfInertiaUnit.CentimeterToTheFourth, false)] // Different value and unit.
+ [InlineData(1, AreaMomentOfInertiaUnit.MeterToTheFourth, 1, AreaMomentOfInertiaUnit.CentimeterToTheFourth, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, AreaMomentOfInertiaUnit unitA, double valueB, AreaMomentOfInertiaUnit unitB, bool expectEqual)
+ {
+ var a = new AreaMomentOfInertia(valueA, unitA);
+ var b = new AreaMomentOfInertia(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = AreaMomentOfInertia.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/AreaTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/AreaTestsBase.g.cs
index 1f83a6a2ea..1fb5bd2a72 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/AreaTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/AreaTestsBase.g.cs
@@ -1394,6 +1394,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => squaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, AreaUnit.SquareMeter, 1, AreaUnit.SquareMeter, true)] // Same value and unit.
+ [InlineData(1, AreaUnit.SquareMeter, 2, AreaUnit.SquareMeter, false)] // Different value.
+ [InlineData(2, AreaUnit.SquareMeter, 1, AreaUnit.Acre, false)] // Different value and unit.
+ [InlineData(1, AreaUnit.SquareMeter, 1, AreaUnit.Acre, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, AreaUnit unitA, double valueB, AreaUnit unitB, bool expectEqual)
+ {
+ var a = new Area(valueA, unitA);
+ var b = new Area(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Area.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/BitRateTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/BitRateTestsBase.g.cs
index 364b04f191..f7b89e7f31 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/BitRateTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/BitRateTestsBase.g.cs
@@ -1475,6 +1475,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => bitpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, BitRateUnit.BitPerSecond, 1, BitRateUnit.BitPerSecond, true)] // Same value and unit.
+ [InlineData(1, BitRateUnit.BitPerSecond, 2, BitRateUnit.BitPerSecond, false)] // Different value.
+ [InlineData(2, BitRateUnit.BitPerSecond, 1, BitRateUnit.BytePerSecond, false)] // Different value and unit.
+ [InlineData(1, BitRateUnit.BitPerSecond, 1, BitRateUnit.BytePerSecond, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(decimal valueA, BitRateUnit unitA, decimal valueB, BitRateUnit unitB, bool expectEqual)
+ {
+ var a = new BitRate(valueA, unitA);
+ var b = new BitRate(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = BitRate.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/BrakeSpecificFuelConsumptionTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/BrakeSpecificFuelConsumptionTestsBase.g.cs
index 94112d45bb..1a8bab7b6a 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/BrakeSpecificFuelConsumptionTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/BrakeSpecificFuelConsumptionTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogramperjoule.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, 1, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, true)] // Same value and unit.
+ [InlineData(1, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, 2, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, false)] // Different value.
+ [InlineData(2, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, 1, BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour, false)] // Different value and unit.
+ [InlineData(1, BrakeSpecificFuelConsumptionUnit.KilogramPerJoule, 1, BrakeSpecificFuelConsumptionUnit.GramPerKiloWattHour, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, BrakeSpecificFuelConsumptionUnit unitA, double valueB, BrakeSpecificFuelConsumptionUnit unitB, bool expectEqual)
+ {
+ var a = new BrakeSpecificFuelConsumption(valueA, unitA);
+ var b = new BrakeSpecificFuelConsumption(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = BrakeSpecificFuelConsumption.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/CapacitanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/CapacitanceTestsBase.g.cs
index 129aa0184e..32592d57ef 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/CapacitanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/CapacitanceTestsBase.g.cs
@@ -501,6 +501,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => farad.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, CapacitanceUnit.Farad, 1, CapacitanceUnit.Farad, true)] // Same value and unit.
+ [InlineData(1, CapacitanceUnit.Farad, 2, CapacitanceUnit.Farad, false)] // Different value.
+ [InlineData(2, CapacitanceUnit.Farad, 1, CapacitanceUnit.Kilofarad, false)] // Different value and unit.
+ [InlineData(1, CapacitanceUnit.Farad, 1, CapacitanceUnit.Kilofarad, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, CapacitanceUnit unitA, double valueB, CapacitanceUnit unitB, bool expectEqual)
+ {
+ var a = new Capacitance(valueA, unitA);
+ var b = new Capacitance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Capacitance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/CoefficientOfThermalExpansionTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/CoefficientOfThermalExpansionTestsBase.g.cs
index 15ca3023b6..2259b86de4 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/CoefficientOfThermalExpansionTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/CoefficientOfThermalExpansionTestsBase.g.cs
@@ -455,6 +455,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => inversekelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, CoefficientOfThermalExpansionUnit.InverseKelvin, 1, CoefficientOfThermalExpansionUnit.InverseKelvin, true)] // Same value and unit.
+ [InlineData(1, CoefficientOfThermalExpansionUnit.InverseKelvin, 2, CoefficientOfThermalExpansionUnit.InverseKelvin, false)] // Different value.
+ [InlineData(2, CoefficientOfThermalExpansionUnit.InverseKelvin, 1, CoefficientOfThermalExpansionUnit.InverseDegreeCelsius, false)] // Different value and unit.
+ [InlineData(1, CoefficientOfThermalExpansionUnit.InverseKelvin, 1, CoefficientOfThermalExpansionUnit.InverseDegreeCelsius, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, CoefficientOfThermalExpansionUnit unitA, double valueB, CoefficientOfThermalExpansionUnit unitB, bool expectEqual)
+ {
+ var a = new CoefficientOfThermalExpansion(valueA, unitA);
+ var b = new CoefficientOfThermalExpansion(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = CoefficientOfThermalExpansion.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/CompressibilityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/CompressibilityTestsBase.g.cs
index d410a29b88..89bf3c1135 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/CompressibilityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/CompressibilityTestsBase.g.cs
@@ -691,6 +691,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => inversepascal.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, CompressibilityUnit.InversePascal, 1, CompressibilityUnit.InversePascal, true)] // Same value and unit.
+ [InlineData(1, CompressibilityUnit.InversePascal, 2, CompressibilityUnit.InversePascal, false)] // Different value.
+ [InlineData(2, CompressibilityUnit.InversePascal, 1, CompressibilityUnit.InverseAtmosphere, false)] // Different value and unit.
+ [InlineData(1, CompressibilityUnit.InversePascal, 1, CompressibilityUnit.InverseAtmosphere, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, CompressibilityUnit unitA, double valueB, CompressibilityUnit unitB, bool expectEqual)
+ {
+ var a = new Compressibility(valueA, unitA);
+ var b = new Compressibility(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Compressibility.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/DensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/DensityTestsBase.g.cs
index c97c759603..f3d840ee4d 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/DensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/DensityTestsBase.g.cs
@@ -2159,6 +2159,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogrampercubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, DensityUnit.KilogramPerCubicMeter, 1, DensityUnit.KilogramPerCubicMeter, true)] // Same value and unit.
+ [InlineData(1, DensityUnit.KilogramPerCubicMeter, 2, DensityUnit.KilogramPerCubicMeter, false)] // Different value.
+ [InlineData(2, DensityUnit.KilogramPerCubicMeter, 1, DensityUnit.CentigramPerDeciliter, false)] // Different value and unit.
+ [InlineData(1, DensityUnit.KilogramPerCubicMeter, 1, DensityUnit.CentigramPerDeciliter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, DensityUnit unitA, double valueB, DensityUnit unitB, bool expectEqual)
+ {
+ var a = new Density(valueA, unitA);
+ var b = new Density(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Density.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs
index 1a8a16a3dd..e1913b5c0d 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/DurationTestsBase.g.cs
@@ -1839,6 +1839,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => second.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, DurationUnit.Second, 1, DurationUnit.Second, true)] // Same value and unit.
+ [InlineData(1, DurationUnit.Second, 2, DurationUnit.Second, false)] // Different value.
+ [InlineData(2, DurationUnit.Second, 1, DurationUnit.Day, false)] // Different value and unit.
+ [InlineData(1, DurationUnit.Second, 1, DurationUnit.Day, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, DurationUnit unitA, double valueB, DurationUnit unitB, bool expectEqual)
+ {
+ var a = new Duration(valueA, unitA);
+ var b = new Duration(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Duration.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/DynamicViscosityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/DynamicViscosityTestsBase.g.cs
index 8673c98654..ec086a4a3d 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/DynamicViscosityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/DynamicViscosityTestsBase.g.cs
@@ -700,6 +700,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonsecondpermetersquared.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, DynamicViscosityUnit.NewtonSecondPerMeterSquared, 1, DynamicViscosityUnit.NewtonSecondPerMeterSquared, true)] // Same value and unit.
+ [InlineData(1, DynamicViscosityUnit.NewtonSecondPerMeterSquared, 2, DynamicViscosityUnit.NewtonSecondPerMeterSquared, false)] // Different value.
+ [InlineData(2, DynamicViscosityUnit.NewtonSecondPerMeterSquared, 1, DynamicViscosityUnit.Centipoise, false)] // Different value and unit.
+ [InlineData(1, DynamicViscosityUnit.NewtonSecondPerMeterSquared, 1, DynamicViscosityUnit.Centipoise, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, DynamicViscosityUnit unitA, double valueB, DynamicViscosityUnit unitB, bool expectEqual)
+ {
+ var a = new DynamicViscosity(valueA, unitA);
+ var b = new DynamicViscosity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = DynamicViscosity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricAdmittanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricAdmittanceTestsBase.g.cs
index 29d27b5208..afe99a1d8d 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricAdmittanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricAdmittanceTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => siemens.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricAdmittanceUnit.Siemens, 1, ElectricAdmittanceUnit.Siemens, true)] // Same value and unit.
+ [InlineData(1, ElectricAdmittanceUnit.Siemens, 2, ElectricAdmittanceUnit.Siemens, false)] // Different value.
+ [InlineData(2, ElectricAdmittanceUnit.Siemens, 1, ElectricAdmittanceUnit.Microsiemens, false)] // Different value and unit.
+ [InlineData(1, ElectricAdmittanceUnit.Siemens, 1, ElectricAdmittanceUnit.Microsiemens, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricAdmittanceUnit unitA, double valueB, ElectricAdmittanceUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricAdmittance(valueA, unitA);
+ var b = new ElectricAdmittance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricAdmittance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeDensityTestsBase.g.cs
index 9232f233d9..60472b3911 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeDensityTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => coulombpercubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricChargeDensityUnit.CoulombPerCubicMeter, 1, ElectricChargeDensityUnit.CoulombPerCubicMeter, true)] // Same value and unit.
+ [InlineData(1, ElectricChargeDensityUnit.CoulombPerCubicMeter, 2, ElectricChargeDensityUnit.CoulombPerCubicMeter, false)] // Different value.
+ [InlineData(2, ElectricChargeDensityUnit.CoulombPerCubicMeter, 1, ElectricChargeDensityUnit.CoulombPerCubicMeter, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricChargeDensityUnit unitA, double valueB, ElectricChargeDensityUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricChargeDensity(valueA, unitA);
+ var b = new ElectricChargeDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricChargeDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeTestsBase.g.cs
index db68600ad6..e598cffe2f 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricChargeTestsBase.g.cs
@@ -505,6 +505,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => coulomb.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricChargeUnit.Coulomb, 1, ElectricChargeUnit.Coulomb, true)] // Same value and unit.
+ [InlineData(1, ElectricChargeUnit.Coulomb, 2, ElectricChargeUnit.Coulomb, false)] // Different value.
+ [InlineData(2, ElectricChargeUnit.Coulomb, 1, ElectricChargeUnit.AmpereHour, false)] // Different value and unit.
+ [InlineData(1, ElectricChargeUnit.Coulomb, 1, ElectricChargeUnit.AmpereHour, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricChargeUnit unitA, double valueB, ElectricChargeUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricCharge(valueA, unitA);
+ var b = new ElectricCharge(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricCharge.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductanceTestsBase.g.cs
index 8c61121680..e29d269faa 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductanceTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => siemens.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricConductanceUnit.Siemens, 1, ElectricConductanceUnit.Siemens, true)] // Same value and unit.
+ [InlineData(1, ElectricConductanceUnit.Siemens, 2, ElectricConductanceUnit.Siemens, false)] // Different value.
+ [InlineData(2, ElectricConductanceUnit.Siemens, 1, ElectricConductanceUnit.Microsiemens, false)] // Different value and unit.
+ [InlineData(1, ElectricConductanceUnit.Siemens, 1, ElectricConductanceUnit.Microsiemens, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricConductanceUnit unitA, double valueB, ElectricConductanceUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricConductance(valueA, unitA);
+ var b = new ElectricConductance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricConductance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductivityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductivityTestsBase.g.cs
index 4da9225091..29d3a96f38 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductivityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricConductivityTestsBase.g.cs
@@ -488,6 +488,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => siemenspermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricConductivityUnit.SiemensPerMeter, 1, ElectricConductivityUnit.SiemensPerMeter, true)] // Same value and unit.
+ [InlineData(1, ElectricConductivityUnit.SiemensPerMeter, 2, ElectricConductivityUnit.SiemensPerMeter, false)] // Different value.
+ [InlineData(2, ElectricConductivityUnit.SiemensPerMeter, 1, ElectricConductivityUnit.MicrosiemensPerCentimeter, false)] // Different value and unit.
+ [InlineData(1, ElectricConductivityUnit.SiemensPerMeter, 1, ElectricConductivityUnit.MicrosiemensPerCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricConductivityUnit unitA, double valueB, ElectricConductivityUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricConductivity(valueA, unitA);
+ var b = new ElectricConductivity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricConductivity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentDensityTestsBase.g.cs
index e2e5e3a884..91d2799228 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentDensityTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => amperepersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricCurrentDensityUnit.AmperePerSquareMeter, 1, ElectricCurrentDensityUnit.AmperePerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, ElectricCurrentDensityUnit.AmperePerSquareMeter, 2, ElectricCurrentDensityUnit.AmperePerSquareMeter, false)] // Different value.
+ [InlineData(2, ElectricCurrentDensityUnit.AmperePerSquareMeter, 1, ElectricCurrentDensityUnit.AmperePerSquareFoot, false)] // Different value and unit.
+ [InlineData(1, ElectricCurrentDensityUnit.AmperePerSquareMeter, 1, ElectricCurrentDensityUnit.AmperePerSquareFoot, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricCurrentDensityUnit unitA, double valueB, ElectricCurrentDensityUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricCurrentDensity(valueA, unitA);
+ var b = new ElectricCurrentDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricCurrentDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentGradientTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentGradientTestsBase.g.cs
index 35bbba06d6..7fc9091d0e 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentGradientTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentGradientTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => amperepersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricCurrentGradientUnit.AmperePerSecond, 1, ElectricCurrentGradientUnit.AmperePerSecond, true)] // Same value and unit.
+ [InlineData(1, ElectricCurrentGradientUnit.AmperePerSecond, 2, ElectricCurrentGradientUnit.AmperePerSecond, false)] // Different value.
+ [InlineData(2, ElectricCurrentGradientUnit.AmperePerSecond, 1, ElectricCurrentGradientUnit.AmperePerMicrosecond, false)] // Different value and unit.
+ [InlineData(1, ElectricCurrentGradientUnit.AmperePerSecond, 1, ElectricCurrentGradientUnit.AmperePerMicrosecond, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricCurrentGradientUnit unitA, double valueB, ElectricCurrentGradientUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricCurrentGradient(valueA, unitA);
+ var b = new ElectricCurrentGradient(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricCurrentGradient.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentTestsBase.g.cs
index 3fefb9fcae..0e6f68c753 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricCurrentTestsBase.g.cs
@@ -536,6 +536,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => ampere.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricCurrentUnit.Ampere, 1, ElectricCurrentUnit.Ampere, true)] // Same value and unit.
+ [InlineData(1, ElectricCurrentUnit.Ampere, 2, ElectricCurrentUnit.Ampere, false)] // Different value.
+ [InlineData(2, ElectricCurrentUnit.Ampere, 1, ElectricCurrentUnit.Centiampere, false)] // Different value and unit.
+ [InlineData(1, ElectricCurrentUnit.Ampere, 1, ElectricCurrentUnit.Centiampere, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricCurrentUnit unitA, double valueB, ElectricCurrentUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricCurrent(valueA, unitA);
+ var b = new ElectricCurrent(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricCurrent.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricFieldTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricFieldTestsBase.g.cs
index 5f71e2aa59..3ca6bbb536 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricFieldTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricFieldTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricFieldUnit.VoltPerMeter, 1, ElectricFieldUnit.VoltPerMeter, true)] // Same value and unit.
+ [InlineData(1, ElectricFieldUnit.VoltPerMeter, 2, ElectricFieldUnit.VoltPerMeter, false)] // Different value.
+ [InlineData(2, ElectricFieldUnit.VoltPerMeter, 1, ElectricFieldUnit.VoltPerMeter, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricFieldUnit unitA, double valueB, ElectricFieldUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricField(valueA, unitA);
+ var b = new ElectricField(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricField.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricInductanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricInductanceTestsBase.g.cs
index f570fd9879..1eefe850c5 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricInductanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricInductanceTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => henry.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricInductanceUnit.Henry, 1, ElectricInductanceUnit.Henry, true)] // Same value and unit.
+ [InlineData(1, ElectricInductanceUnit.Henry, 2, ElectricInductanceUnit.Henry, false)] // Different value.
+ [InlineData(2, ElectricInductanceUnit.Henry, 1, ElectricInductanceUnit.Microhenry, false)] // Different value and unit.
+ [InlineData(1, ElectricInductanceUnit.Henry, 1, ElectricInductanceUnit.Microhenry, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricInductanceUnit unitA, double valueB, ElectricInductanceUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricInductance(valueA, unitA);
+ var b = new ElectricInductance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricInductance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialAcTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialAcTestsBase.g.cs
index eadd72a1be..e0ffc6815f 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialAcTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialAcTestsBase.g.cs
@@ -431,6 +431,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltac.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricPotentialAcUnit.VoltAc, 1, ElectricPotentialAcUnit.VoltAc, true)] // Same value and unit.
+ [InlineData(1, ElectricPotentialAcUnit.VoltAc, 2, ElectricPotentialAcUnit.VoltAc, false)] // Different value.
+ [InlineData(2, ElectricPotentialAcUnit.VoltAc, 1, ElectricPotentialAcUnit.KilovoltAc, false)] // Different value and unit.
+ [InlineData(1, ElectricPotentialAcUnit.VoltAc, 1, ElectricPotentialAcUnit.KilovoltAc, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricPotentialAcUnit unitA, double valueB, ElectricPotentialAcUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricPotentialAc(valueA, unitA);
+ var b = new ElectricPotentialAc(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricPotentialAc.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialChangeRateTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialChangeRateTestsBase.g.cs
index 9b2e1843e0..905ace081d 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialChangeRateTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialChangeRateTestsBase.g.cs
@@ -890,6 +890,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricPotentialChangeRateUnit.VoltPerSecond, 1, ElectricPotentialChangeRateUnit.VoltPerSecond, true)] // Same value and unit.
+ [InlineData(1, ElectricPotentialChangeRateUnit.VoltPerSecond, 2, ElectricPotentialChangeRateUnit.VoltPerSecond, false)] // Different value.
+ [InlineData(2, ElectricPotentialChangeRateUnit.VoltPerSecond, 1, ElectricPotentialChangeRateUnit.KilovoltPerHour, false)] // Different value and unit.
+ [InlineData(1, ElectricPotentialChangeRateUnit.VoltPerSecond, 1, ElectricPotentialChangeRateUnit.KilovoltPerHour, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricPotentialChangeRateUnit unitA, double valueB, ElectricPotentialChangeRateUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricPotentialChangeRate(valueA, unitA);
+ var b = new ElectricPotentialChangeRate(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricPotentialChangeRate.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialDcTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialDcTestsBase.g.cs
index 9c75620dae..bcd0c589b0 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialDcTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialDcTestsBase.g.cs
@@ -431,6 +431,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltdc.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricPotentialDcUnit.VoltDc, 1, ElectricPotentialDcUnit.VoltDc, true)] // Same value and unit.
+ [InlineData(1, ElectricPotentialDcUnit.VoltDc, 2, ElectricPotentialDcUnit.VoltDc, false)] // Different value.
+ [InlineData(2, ElectricPotentialDcUnit.VoltDc, 1, ElectricPotentialDcUnit.KilovoltDc, false)] // Different value and unit.
+ [InlineData(1, ElectricPotentialDcUnit.VoltDc, 1, ElectricPotentialDcUnit.KilovoltDc, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricPotentialDcUnit unitA, double valueB, ElectricPotentialDcUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricPotentialDc(valueA, unitA);
+ var b = new ElectricPotentialDc(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricPotentialDc.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialTestsBase.g.cs
index 572a1fd853..603aee7188 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricPotentialTestsBase.g.cs
@@ -529,6 +529,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => volt.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricPotentialUnit.Volt, 1, ElectricPotentialUnit.Volt, true)] // Same value and unit.
+ [InlineData(1, ElectricPotentialUnit.Volt, 2, ElectricPotentialUnit.Volt, false)] // Different value.
+ [InlineData(2, ElectricPotentialUnit.Volt, 1, ElectricPotentialUnit.Kilovolt, false)] // Different value and unit.
+ [InlineData(1, ElectricPotentialUnit.Volt, 1, ElectricPotentialUnit.Kilovolt, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricPotentialUnit unitA, double valueB, ElectricPotentialUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricPotential(valueA, unitA);
+ var b = new ElectricPotential(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricPotential.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistanceTestsBase.g.cs
index 7ecb5bb8b0..65529c70de 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistanceTestsBase.g.cs
@@ -466,6 +466,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => ohm.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricResistanceUnit.Ohm, 1, ElectricResistanceUnit.Ohm, true)] // Same value and unit.
+ [InlineData(1, ElectricResistanceUnit.Ohm, 2, ElectricResistanceUnit.Ohm, false)] // Different value.
+ [InlineData(2, ElectricResistanceUnit.Ohm, 1, ElectricResistanceUnit.Gigaohm, false)] // Different value and unit.
+ [InlineData(1, ElectricResistanceUnit.Ohm, 1, ElectricResistanceUnit.Gigaohm, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricResistanceUnit unitA, double valueB, ElectricResistanceUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricResistance(valueA, unitA);
+ var b = new ElectricResistance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricResistance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistivityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistivityTestsBase.g.cs
index 145a7533e4..66c9aec560 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistivityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricResistivityTestsBase.g.cs
@@ -724,6 +724,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => ohmmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricResistivityUnit.OhmMeter, 1, ElectricResistivityUnit.OhmMeter, true)] // Same value and unit.
+ [InlineData(1, ElectricResistivityUnit.OhmMeter, 2, ElectricResistivityUnit.OhmMeter, false)] // Different value.
+ [InlineData(2, ElectricResistivityUnit.OhmMeter, 1, ElectricResistivityUnit.KiloohmCentimeter, false)] // Different value and unit.
+ [InlineData(1, ElectricResistivityUnit.OhmMeter, 1, ElectricResistivityUnit.KiloohmCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricResistivityUnit unitA, double valueB, ElectricResistivityUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricResistivity(valueA, unitA);
+ var b = new ElectricResistivity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricResistivity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricSurfaceChargeDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricSurfaceChargeDensityTestsBase.g.cs
index 98b1414188..571b2b252b 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricSurfaceChargeDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ElectricSurfaceChargeDensityTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => coulombpersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, 1, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, 2, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, false)] // Different value.
+ [InlineData(2, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, 1, ElectricSurfaceChargeDensityUnit.CoulombPerSquareCentimeter, false)] // Different value and unit.
+ [InlineData(1, ElectricSurfaceChargeDensityUnit.CoulombPerSquareMeter, 1, ElectricSurfaceChargeDensityUnit.CoulombPerSquareCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ElectricSurfaceChargeDensityUnit unitA, double valueB, ElectricSurfaceChargeDensityUnit unitB, bool expectEqual)
+ {
+ var a = new ElectricSurfaceChargeDensity(valueA, unitA);
+ var b = new ElectricSurfaceChargeDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ElectricSurfaceChargeDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyDensityTestsBase.g.cs
index ab48d74243..abbaf496de 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyDensityTestsBase.g.cs
@@ -698,6 +698,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => joulepercubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, EnergyDensityUnit.JoulePerCubicMeter, 1, EnergyDensityUnit.JoulePerCubicMeter, true)] // Same value and unit.
+ [InlineData(1, EnergyDensityUnit.JoulePerCubicMeter, 2, EnergyDensityUnit.JoulePerCubicMeter, false)] // Different value.
+ [InlineData(2, EnergyDensityUnit.JoulePerCubicMeter, 1, EnergyDensityUnit.GigajoulePerCubicMeter, false)] // Different value and unit.
+ [InlineData(1, EnergyDensityUnit.JoulePerCubicMeter, 1, EnergyDensityUnit.GigajoulePerCubicMeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, EnergyDensityUnit unitA, double valueB, EnergyDensityUnit unitB, bool expectEqual)
+ {
+ var a = new EnergyDensity(valueA, unitA);
+ var b = new EnergyDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = EnergyDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyTestsBase.g.cs
index b6eab436ff..c1f36315a2 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/EnergyTestsBase.g.cs
@@ -2090,6 +2090,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => joule.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, EnergyUnit.Joule, 1, EnergyUnit.Joule, true)] // Same value and unit.
+ [InlineData(1, EnergyUnit.Joule, 2, EnergyUnit.Joule, false)] // Different value.
+ [InlineData(2, EnergyUnit.Joule, 1, EnergyUnit.BritishThermalUnit, false)] // Different value and unit.
+ [InlineData(1, EnergyUnit.Joule, 1, EnergyUnit.BritishThermalUnit, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, EnergyUnit unitA, double valueB, EnergyUnit unitB, bool expectEqual)
+ {
+ var a = new Energy(valueA, unitA);
+ var b = new Energy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Energy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/EntropyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/EntropyTestsBase.g.cs
index 5c4e0fba81..e32b26734e 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/EntropyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/EntropyTestsBase.g.cs
@@ -523,6 +523,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => jouleperkelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, EntropyUnit.JoulePerKelvin, 1, EntropyUnit.JoulePerKelvin, true)] // Same value and unit.
+ [InlineData(1, EntropyUnit.JoulePerKelvin, 2, EntropyUnit.JoulePerKelvin, false)] // Different value.
+ [InlineData(2, EntropyUnit.JoulePerKelvin, 1, EntropyUnit.CaloriePerKelvin, false)] // Different value and unit.
+ [InlineData(1, EntropyUnit.JoulePerKelvin, 1, EntropyUnit.CaloriePerKelvin, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, EntropyUnit unitA, double valueB, EntropyUnit unitB, bool expectEqual)
+ {
+ var a = new Entropy(valueA, unitA);
+ var b = new Entropy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Entropy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ForceChangeRateTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ForceChangeRateTestsBase.g.cs
index 03a3a8a26a..aecb0ac156 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ForceChangeRateTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ForceChangeRateTestsBase.g.cs
@@ -899,6 +899,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ForceChangeRateUnit.NewtonPerSecond, 1, ForceChangeRateUnit.NewtonPerSecond, true)] // Same value and unit.
+ [InlineData(1, ForceChangeRateUnit.NewtonPerSecond, 2, ForceChangeRateUnit.NewtonPerSecond, false)] // Different value.
+ [InlineData(2, ForceChangeRateUnit.NewtonPerSecond, 1, ForceChangeRateUnit.CentinewtonPerSecond, false)] // Different value and unit.
+ [InlineData(1, ForceChangeRateUnit.NewtonPerSecond, 1, ForceChangeRateUnit.CentinewtonPerSecond, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ForceChangeRateUnit unitA, double valueB, ForceChangeRateUnit unitB, bool expectEqual)
+ {
+ var a = new ForceChangeRate(valueA, unitA);
+ var b = new ForceChangeRate(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ForceChangeRate.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ForcePerLengthTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ForcePerLengthTestsBase.g.cs
index 4fb3e67344..f7a8b85bd2 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ForcePerLengthTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ForcePerLengthTestsBase.g.cs
@@ -1782,6 +1782,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ForcePerLengthUnit.NewtonPerMeter, 1, ForcePerLengthUnit.NewtonPerMeter, true)] // Same value and unit.
+ [InlineData(1, ForcePerLengthUnit.NewtonPerMeter, 2, ForcePerLengthUnit.NewtonPerMeter, false)] // Different value.
+ [InlineData(2, ForcePerLengthUnit.NewtonPerMeter, 1, ForcePerLengthUnit.CentinewtonPerCentimeter, false)] // Different value and unit.
+ [InlineData(1, ForcePerLengthUnit.NewtonPerMeter, 1, ForcePerLengthUnit.CentinewtonPerCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ForcePerLengthUnit unitA, double valueB, ForcePerLengthUnit unitB, bool expectEqual)
+ {
+ var a = new ForcePerLength(valueA, unitA);
+ var b = new ForcePerLength(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ForcePerLength.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ForceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ForceTestsBase.g.cs
index 5cf1bc320c..b31de791d1 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ForceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ForceTestsBase.g.cs
@@ -1217,6 +1217,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newton.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ForceUnit.Newton, 1, ForceUnit.Newton, true)] // Same value and unit.
+ [InlineData(1, ForceUnit.Newton, 2, ForceUnit.Newton, false)] // Different value.
+ [InlineData(2, ForceUnit.Newton, 1, ForceUnit.Decanewton, false)] // Different value and unit.
+ [InlineData(1, ForceUnit.Newton, 1, ForceUnit.Decanewton, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ForceUnit unitA, double valueB, ForceUnit unitB, bool expectEqual)
+ {
+ var a = new Force(valueA, unitA);
+ var b = new Force(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Force.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/FrequencyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/FrequencyTestsBase.g.cs
index 664a51f316..cc4aef4aca 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/FrequencyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/FrequencyTestsBase.g.cs
@@ -831,6 +831,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => hertz.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, FrequencyUnit.Hertz, 1, FrequencyUnit.Hertz, true)] // Same value and unit.
+ [InlineData(1, FrequencyUnit.Hertz, 2, FrequencyUnit.Hertz, false)] // Different value.
+ [InlineData(2, FrequencyUnit.Hertz, 1, FrequencyUnit.BeatPerMinute, false)] // Different value and unit.
+ [InlineData(1, FrequencyUnit.Hertz, 1, FrequencyUnit.BeatPerMinute, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, FrequencyUnit unitA, double valueB, FrequencyUnit unitB, bool expectEqual)
+ {
+ var a = new Frequency(valueA, unitA);
+ var b = new Frequency(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Frequency.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/FuelEfficiencyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/FuelEfficiencyTestsBase.g.cs
index 561a6d1541..9e1ab85524 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/FuelEfficiencyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/FuelEfficiencyTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => literper100kilometers.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, FuelEfficiencyUnit.LiterPer100Kilometers, 1, FuelEfficiencyUnit.LiterPer100Kilometers, true)] // Same value and unit.
+ [InlineData(1, FuelEfficiencyUnit.LiterPer100Kilometers, 2, FuelEfficiencyUnit.LiterPer100Kilometers, false)] // Different value.
+ [InlineData(2, FuelEfficiencyUnit.LiterPer100Kilometers, 1, FuelEfficiencyUnit.KilometerPerLiter, false)] // Different value and unit.
+ [InlineData(1, FuelEfficiencyUnit.LiterPer100Kilometers, 1, FuelEfficiencyUnit.KilometerPerLiter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, FuelEfficiencyUnit unitA, double valueB, FuelEfficiencyUnit unitB, bool expectEqual)
+ {
+ var a = new FuelEfficiency(valueA, unitA);
+ var b = new FuelEfficiency(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = FuelEfficiency.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/HeatFluxTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/HeatFluxTestsBase.g.cs
index f2116bb954..9a08cd99eb 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/HeatFluxTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/HeatFluxTestsBase.g.cs
@@ -932,6 +932,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => wattpersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, HeatFluxUnit.WattPerSquareMeter, 1, HeatFluxUnit.WattPerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, HeatFluxUnit.WattPerSquareMeter, 2, HeatFluxUnit.WattPerSquareMeter, false)] // Different value.
+ [InlineData(2, HeatFluxUnit.WattPerSquareMeter, 1, HeatFluxUnit.BtuPerHourSquareFoot, false)] // Different value and unit.
+ [InlineData(1, HeatFluxUnit.WattPerSquareMeter, 1, HeatFluxUnit.BtuPerHourSquareFoot, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, HeatFluxUnit unitA, double valueB, HeatFluxUnit unitB, bool expectEqual)
+ {
+ var a = new HeatFlux(valueA, unitA);
+ var b = new HeatFlux(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = HeatFlux.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/HeatTransferCoefficientTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/HeatTransferCoefficientTestsBase.g.cs
index 6e1d165436..6c5ea66165 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/HeatTransferCoefficientTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/HeatTransferCoefficientTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => wattpersquaremeterkelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, 1, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, true)] // Same value and unit.
+ [InlineData(1, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, 2, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, false)] // Different value.
+ [InlineData(2, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, 1, HeatTransferCoefficientUnit.BtuPerSquareFootDegreeFahrenheit, false)] // Different value and unit.
+ [InlineData(1, HeatTransferCoefficientUnit.WattPerSquareMeterKelvin, 1, HeatTransferCoefficientUnit.BtuPerSquareFootDegreeFahrenheit, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, HeatTransferCoefficientUnit unitA, double valueB, HeatTransferCoefficientUnit unitB, bool expectEqual)
+ {
+ var a = new HeatTransferCoefficient(valueA, unitA);
+ var b = new HeatTransferCoefficient(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = HeatTransferCoefficient.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/IlluminanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/IlluminanceTestsBase.g.cs
index c1f2dc701b..df936d55c7 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/IlluminanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/IlluminanceTestsBase.g.cs
@@ -396,6 +396,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => lux.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, IlluminanceUnit.Lux, 1, IlluminanceUnit.Lux, true)] // Same value and unit.
+ [InlineData(1, IlluminanceUnit.Lux, 2, IlluminanceUnit.Lux, false)] // Different value.
+ [InlineData(2, IlluminanceUnit.Lux, 1, IlluminanceUnit.Kilolux, false)] // Different value and unit.
+ [InlineData(1, IlluminanceUnit.Lux, 1, IlluminanceUnit.Kilolux, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, IlluminanceUnit unitA, double valueB, IlluminanceUnit unitB, bool expectEqual)
+ {
+ var a = new Illuminance(valueA, unitA);
+ var b = new Illuminance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Illuminance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/InformationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/InformationTestsBase.g.cs
index 11d7e9d323..d451f870bd 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/InformationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/InformationTestsBase.g.cs
@@ -877,6 +877,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => bit.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, InformationUnit.Bit, 1, InformationUnit.Bit, true)] // Same value and unit.
+ [InlineData(1, InformationUnit.Bit, 2, InformationUnit.Bit, false)] // Different value.
+ [InlineData(2, InformationUnit.Bit, 1, InformationUnit.Byte, false)] // Different value and unit.
+ [InlineData(1, InformationUnit.Bit, 1, InformationUnit.Byte, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(decimal valueA, InformationUnit unitA, decimal valueB, InformationUnit unitB, bool expectEqual)
+ {
+ var a = new Information(valueA, unitA);
+ var b = new Information(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Information.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/IrradianceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/IrradianceTestsBase.g.cs
index 441d2dca10..30bb2a73b3 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/IrradianceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/IrradianceTestsBase.g.cs
@@ -724,6 +724,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => wattpersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, IrradianceUnit.WattPerSquareMeter, 1, IrradianceUnit.WattPerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, IrradianceUnit.WattPerSquareMeter, 2, IrradianceUnit.WattPerSquareMeter, false)] // Different value.
+ [InlineData(2, IrradianceUnit.WattPerSquareMeter, 1, IrradianceUnit.KilowattPerSquareCentimeter, false)] // Different value and unit.
+ [InlineData(1, IrradianceUnit.WattPerSquareMeter, 1, IrradianceUnit.KilowattPerSquareCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, IrradianceUnit unitA, double valueB, IrradianceUnit unitB, bool expectEqual)
+ {
+ var a = new Irradiance(valueA, unitA);
+ var b = new Irradiance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Irradiance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs
index ea40190154..456fffe47e 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs
@@ -523,6 +523,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => joulepersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.JoulePerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, IrradiationUnit.JoulePerSquareMeter, 2, IrradiationUnit.JoulePerSquareMeter, false)] // Different value.
+ [InlineData(2, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.JoulePerSquareCentimeter, false)] // Different value and unit.
+ [InlineData(1, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.JoulePerSquareCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, IrradiationUnit unitA, double valueB, IrradiationUnit unitB, bool expectEqual)
+ {
+ var a = new Irradiation(valueA, unitA);
+ var b = new Irradiation(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Irradiation.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/JerkTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/JerkTestsBase.g.cs
index 2348b7f6ac..2ddde4b4d2 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/JerkTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/JerkTestsBase.g.cs
@@ -927,6 +927,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => meterpersecondcubed.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, JerkUnit.MeterPerSecondCubed, 1, JerkUnit.MeterPerSecondCubed, true)] // Same value and unit.
+ [InlineData(1, JerkUnit.MeterPerSecondCubed, 2, JerkUnit.MeterPerSecondCubed, false)] // Different value.
+ [InlineData(2, JerkUnit.MeterPerSecondCubed, 1, JerkUnit.CentimeterPerSecondCubed, false)] // Different value and unit.
+ [InlineData(1, JerkUnit.MeterPerSecondCubed, 1, JerkUnit.CentimeterPerSecondCubed, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, JerkUnit unitA, double valueB, JerkUnit unitB, bool expectEqual)
+ {
+ var a = new Jerk(valueA, unitA);
+ var b = new Jerk(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Jerk.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/KinematicViscosityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/KinematicViscosityTestsBase.g.cs
index b3e25ed4d1..cc14d082df 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/KinematicViscosityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/KinematicViscosityTestsBase.g.cs
@@ -785,6 +785,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => squaremeterpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, KinematicViscosityUnit.SquareMeterPerSecond, 1, KinematicViscosityUnit.SquareMeterPerSecond, true)] // Same value and unit.
+ [InlineData(1, KinematicViscosityUnit.SquareMeterPerSecond, 2, KinematicViscosityUnit.SquareMeterPerSecond, false)] // Different value.
+ [InlineData(2, KinematicViscosityUnit.SquareMeterPerSecond, 1, KinematicViscosityUnit.Centistokes, false)] // Different value and unit.
+ [InlineData(1, KinematicViscosityUnit.SquareMeterPerSecond, 1, KinematicViscosityUnit.Centistokes, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, KinematicViscosityUnit unitA, double valueB, KinematicViscosityUnit unitB, bool expectEqual)
+ {
+ var a = new KinematicViscosity(valueA, unitA);
+ var b = new KinematicViscosity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = KinematicViscosity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LapseRateTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LapseRateTestsBase.g.cs
index d562077b14..624c1e33a4 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LapseRateTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LapseRateTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => degreecelsiusperkilometer.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LapseRateUnit.DegreeCelsiusPerKilometer, 1, LapseRateUnit.DegreeCelsiusPerKilometer, true)] // Same value and unit.
+ [InlineData(1, LapseRateUnit.DegreeCelsiusPerKilometer, 2, LapseRateUnit.DegreeCelsiusPerKilometer, false)] // Different value.
+ [InlineData(2, LapseRateUnit.DegreeCelsiusPerKilometer, 1, LapseRateUnit.DegreeCelsiusPerKilometer, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LapseRateUnit unitA, double valueB, LapseRateUnit unitB, bool expectEqual)
+ {
+ var a = new LapseRate(valueA, unitA);
+ var b = new LapseRate(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = LapseRate.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LengthTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LengthTestsBase.g.cs
index b0bfe72b23..43505d89aa 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LengthTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LengthTestsBase.g.cs
@@ -2342,6 +2342,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => meter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LengthUnit.Meter, 1, LengthUnit.Meter, true)] // Same value and unit.
+ [InlineData(1, LengthUnit.Meter, 2, LengthUnit.Meter, false)] // Different value.
+ [InlineData(2, LengthUnit.Meter, 1, LengthUnit.Angstrom, false)] // Different value and unit.
+ [InlineData(1, LengthUnit.Meter, 1, LengthUnit.Angstrom, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LengthUnit unitA, double valueB, LengthUnit unitB, bool expectEqual)
+ {
+ var a = new Length(valueA, unitA);
+ var b = new Length(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Length.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LevelTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LevelTestsBase.g.cs
index b163c6d690..1d4608d679 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LevelTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LevelTestsBase.g.cs
@@ -352,6 +352,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => decibel.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LevelUnit.Decibel, 1, LevelUnit.Decibel, true)] // Same value and unit.
+ [InlineData(1, LevelUnit.Decibel, 2, LevelUnit.Decibel, false)] // Different value.
+ [InlineData(2, LevelUnit.Decibel, 1, LevelUnit.Neper, false)] // Different value and unit.
+ [InlineData(1, LevelUnit.Decibel, 1, LevelUnit.Neper, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LevelUnit unitA, double valueB, LevelUnit unitB, bool expectEqual)
+ {
+ var a = new Level(valueA, unitA);
+ var b = new Level(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Level.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LinearDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LinearDensityTestsBase.g.cs
index 06b421e2ab..d32b4f704b 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LinearDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LinearDensityTestsBase.g.cs
@@ -768,6 +768,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogrampermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LinearDensityUnit.KilogramPerMeter, 1, LinearDensityUnit.KilogramPerMeter, true)] // Same value and unit.
+ [InlineData(1, LinearDensityUnit.KilogramPerMeter, 2, LinearDensityUnit.KilogramPerMeter, false)] // Different value.
+ [InlineData(2, LinearDensityUnit.KilogramPerMeter, 1, LinearDensityUnit.GramPerCentimeter, false)] // Different value and unit.
+ [InlineData(1, LinearDensityUnit.KilogramPerMeter, 1, LinearDensityUnit.GramPerCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LinearDensityUnit unitA, double valueB, LinearDensityUnit unitB, bool expectEqual)
+ {
+ var a = new LinearDensity(valueA, unitA);
+ var b = new LinearDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = LinearDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LinearPowerDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LinearPowerDensityTestsBase.g.cs
index 1a89abd89f..dae88a72c6 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LinearPowerDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LinearPowerDensityTestsBase.g.cs
@@ -1043,6 +1043,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => wattpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LinearPowerDensityUnit.WattPerMeter, 1, LinearPowerDensityUnit.WattPerMeter, true)] // Same value and unit.
+ [InlineData(1, LinearPowerDensityUnit.WattPerMeter, 2, LinearPowerDensityUnit.WattPerMeter, false)] // Different value.
+ [InlineData(2, LinearPowerDensityUnit.WattPerMeter, 1, LinearPowerDensityUnit.GigawattPerCentimeter, false)] // Different value and unit.
+ [InlineData(1, LinearPowerDensityUnit.WattPerMeter, 1, LinearPowerDensityUnit.GigawattPerCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LinearPowerDensityUnit unitA, double valueB, LinearPowerDensityUnit unitB, bool expectEqual)
+ {
+ var a = new LinearPowerDensity(valueA, unitA);
+ var b = new LinearPowerDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = LinearPowerDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminanceTestsBase.g.cs
index 10ecdb3f60..c5b184aa8b 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminanceTestsBase.g.cs
@@ -628,6 +628,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => candelapersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LuminanceUnit.CandelaPerSquareMeter, 1, LuminanceUnit.CandelaPerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, LuminanceUnit.CandelaPerSquareMeter, 2, LuminanceUnit.CandelaPerSquareMeter, false)] // Different value.
+ [InlineData(2, LuminanceUnit.CandelaPerSquareMeter, 1, LuminanceUnit.CandelaPerSquareFoot, false)] // Different value and unit.
+ [InlineData(1, LuminanceUnit.CandelaPerSquareMeter, 1, LuminanceUnit.CandelaPerSquareFoot, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LuminanceUnit unitA, double valueB, LuminanceUnit unitB, bool expectEqual)
+ {
+ var a = new Luminance(valueA, unitA);
+ var b = new Luminance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Luminance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminosityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminosityTestsBase.g.cs
index d56fa7953e..a92b569ac8 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminosityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminosityTestsBase.g.cs
@@ -724,6 +724,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => watt.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LuminosityUnit.Watt, 1, LuminosityUnit.Watt, true)] // Same value and unit.
+ [InlineData(1, LuminosityUnit.Watt, 2, LuminosityUnit.Watt, false)] // Different value.
+ [InlineData(2, LuminosityUnit.Watt, 1, LuminosityUnit.Decawatt, false)] // Different value and unit.
+ [InlineData(1, LuminosityUnit.Watt, 1, LuminosityUnit.Decawatt, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LuminosityUnit unitA, double valueB, LuminosityUnit unitB, bool expectEqual)
+ {
+ var a = new Luminosity(valueA, unitA);
+ var b = new Luminosity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Luminosity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousFluxTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousFluxTestsBase.g.cs
index 208ed4cbf9..50ea467dd9 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousFluxTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousFluxTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => lumen.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LuminousFluxUnit.Lumen, 1, LuminousFluxUnit.Lumen, true)] // Same value and unit.
+ [InlineData(1, LuminousFluxUnit.Lumen, 2, LuminousFluxUnit.Lumen, false)] // Different value.
+ [InlineData(2, LuminousFluxUnit.Lumen, 1, LuminousFluxUnit.Lumen, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LuminousFluxUnit unitA, double valueB, LuminousFluxUnit unitB, bool expectEqual)
+ {
+ var a = new LuminousFlux(valueA, unitA);
+ var b = new LuminousFlux(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = LuminousFlux.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousIntensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousIntensityTestsBase.g.cs
index da524e7077..67a5c996b3 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousIntensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/LuminousIntensityTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => candela.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, LuminousIntensityUnit.Candela, 1, LuminousIntensityUnit.Candela, true)] // Same value and unit.
+ [InlineData(1, LuminousIntensityUnit.Candela, 2, LuminousIntensityUnit.Candela, false)] // Different value.
+ [InlineData(2, LuminousIntensityUnit.Candela, 1, LuminousIntensityUnit.Candela, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, LuminousIntensityUnit unitA, double valueB, LuminousIntensityUnit unitB, bool expectEqual)
+ {
+ var a = new LuminousIntensity(valueA, unitA);
+ var b = new LuminousIntensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = LuminousIntensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFieldTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFieldTestsBase.g.cs
index 206474b9dc..2a6646df54 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFieldTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFieldTestsBase.g.cs
@@ -488,6 +488,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => tesla.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MagneticFieldUnit.Tesla, 1, MagneticFieldUnit.Tesla, true)] // Same value and unit.
+ [InlineData(1, MagneticFieldUnit.Tesla, 2, MagneticFieldUnit.Tesla, false)] // Different value.
+ [InlineData(2, MagneticFieldUnit.Tesla, 1, MagneticFieldUnit.Gauss, false)] // Different value and unit.
+ [InlineData(1, MagneticFieldUnit.Tesla, 1, MagneticFieldUnit.Gauss, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MagneticFieldUnit unitA, double valueB, MagneticFieldUnit unitB, bool expectEqual)
+ {
+ var a = new MagneticField(valueA, unitA);
+ var b = new MagneticField(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MagneticField.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFluxTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFluxTestsBase.g.cs
index c60ea26274..935b675489 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFluxTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MagneticFluxTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => weber.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MagneticFluxUnit.Weber, 1, MagneticFluxUnit.Weber, true)] // Same value and unit.
+ [InlineData(1, MagneticFluxUnit.Weber, 2, MagneticFluxUnit.Weber, false)] // Different value.
+ [InlineData(2, MagneticFluxUnit.Weber, 1, MagneticFluxUnit.Weber, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MagneticFluxUnit unitA, double valueB, MagneticFluxUnit unitB, bool expectEqual)
+ {
+ var a = new MagneticFlux(valueA, unitA);
+ var b = new MagneticFlux(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MagneticFlux.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MagnetizationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MagnetizationTestsBase.g.cs
index 27481dec8d..6dee668baf 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MagnetizationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MagnetizationTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => amperepermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MagnetizationUnit.AmperePerMeter, 1, MagnetizationUnit.AmperePerMeter, true)] // Same value and unit.
+ [InlineData(1, MagnetizationUnit.AmperePerMeter, 2, MagnetizationUnit.AmperePerMeter, false)] // Different value.
+ [InlineData(2, MagnetizationUnit.AmperePerMeter, 1, MagnetizationUnit.AmperePerMeter, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MagnetizationUnit unitA, double valueB, MagnetizationUnit unitB, bool expectEqual)
+ {
+ var a = new Magnetization(valueA, unitA);
+ var b = new Magnetization(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Magnetization.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MassConcentrationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MassConcentrationTestsBase.g.cs
index cc0560bbbb..6bc9ae6944 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MassConcentrationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MassConcentrationTestsBase.g.cs
@@ -2089,6 +2089,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogrampercubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MassConcentrationUnit.KilogramPerCubicMeter, 1, MassConcentrationUnit.KilogramPerCubicMeter, true)] // Same value and unit.
+ [InlineData(1, MassConcentrationUnit.KilogramPerCubicMeter, 2, MassConcentrationUnit.KilogramPerCubicMeter, false)] // Different value.
+ [InlineData(2, MassConcentrationUnit.KilogramPerCubicMeter, 1, MassConcentrationUnit.CentigramPerDeciliter, false)] // Different value and unit.
+ [InlineData(1, MassConcentrationUnit.KilogramPerCubicMeter, 1, MassConcentrationUnit.CentigramPerDeciliter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MassConcentrationUnit unitA, double valueB, MassConcentrationUnit unitB, bool expectEqual)
+ {
+ var a = new MassConcentration(valueA, unitA);
+ var b = new MassConcentration(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MassConcentration.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MassFlowTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MassFlowTestsBase.g.cs
index 89627309ae..c2cd778fd7 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MassFlowTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MassFlowTestsBase.g.cs
@@ -1675,6 +1675,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => grampersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MassFlowUnit.GramPerSecond, 1, MassFlowUnit.GramPerSecond, true)] // Same value and unit.
+ [InlineData(1, MassFlowUnit.GramPerSecond, 2, MassFlowUnit.GramPerSecond, false)] // Different value.
+ [InlineData(2, MassFlowUnit.GramPerSecond, 1, MassFlowUnit.CentigramPerDay, false)] // Different value and unit.
+ [InlineData(1, MassFlowUnit.GramPerSecond, 1, MassFlowUnit.CentigramPerDay, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MassFlowUnit unitA, double valueB, MassFlowUnit unitB, bool expectEqual)
+ {
+ var a = new MassFlow(valueA, unitA);
+ var b = new MassFlow(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MassFlow.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MassFluxTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MassFluxTestsBase.g.cs
index 91c3178d40..72745c3312 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MassFluxTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MassFluxTestsBase.g.cs
@@ -698,6 +698,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogrampersecondpersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MassFluxUnit.KilogramPerSecondPerSquareMeter, 1, MassFluxUnit.KilogramPerSecondPerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, MassFluxUnit.KilogramPerSecondPerSquareMeter, 2, MassFluxUnit.KilogramPerSecondPerSquareMeter, false)] // Different value.
+ [InlineData(2, MassFluxUnit.KilogramPerSecondPerSquareMeter, 1, MassFluxUnit.GramPerHourPerSquareCentimeter, false)] // Different value and unit.
+ [InlineData(1, MassFluxUnit.KilogramPerSecondPerSquareMeter, 1, MassFluxUnit.GramPerHourPerSquareCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MassFluxUnit unitA, double valueB, MassFluxUnit unitB, bool expectEqual)
+ {
+ var a = new MassFlux(valueA, unitA);
+ var b = new MassFlux(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MassFlux.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MassFractionTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MassFractionTestsBase.g.cs
index fb4a1163c8..6ad70e4b15 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MassFractionTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MassFractionTestsBase.g.cs
@@ -1142,6 +1142,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => decimalfraction.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MassFractionUnit.DecimalFraction, 1, MassFractionUnit.DecimalFraction, true)] // Same value and unit.
+ [InlineData(1, MassFractionUnit.DecimalFraction, 2, MassFractionUnit.DecimalFraction, false)] // Different value.
+ [InlineData(2, MassFractionUnit.DecimalFraction, 1, MassFractionUnit.CentigramPerGram, false)] // Different value and unit.
+ [InlineData(1, MassFractionUnit.DecimalFraction, 1, MassFractionUnit.CentigramPerGram, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MassFractionUnit unitA, double valueB, MassFractionUnit unitB, bool expectEqual)
+ {
+ var a = new MassFraction(valueA, unitA);
+ var b = new MassFraction(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MassFraction.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MassMomentOfInertiaTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MassMomentOfInertiaTestsBase.g.cs
index a2d27035a9..82f3e2e6c8 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MassMomentOfInertiaTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MassMomentOfInertiaTestsBase.g.cs
@@ -1258,6 +1258,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogramsquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MassMomentOfInertiaUnit.KilogramSquareMeter, 1, MassMomentOfInertiaUnit.KilogramSquareMeter, true)] // Same value and unit.
+ [InlineData(1, MassMomentOfInertiaUnit.KilogramSquareMeter, 2, MassMomentOfInertiaUnit.KilogramSquareMeter, false)] // Different value.
+ [InlineData(2, MassMomentOfInertiaUnit.KilogramSquareMeter, 1, MassMomentOfInertiaUnit.GramSquareCentimeter, false)] // Different value and unit.
+ [InlineData(1, MassMomentOfInertiaUnit.KilogramSquareMeter, 1, MassMomentOfInertiaUnit.GramSquareCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MassMomentOfInertiaUnit unitA, double valueB, MassMomentOfInertiaUnit unitB, bool expectEqual)
+ {
+ var a = new MassMomentOfInertia(valueA, unitA);
+ var b = new MassMomentOfInertia(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MassMomentOfInertia.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs
index b91f58b8f4..8f89dcb6a9 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs
@@ -2165,6 +2165,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogram.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MassUnit.Kilogram, 1, MassUnit.Kilogram, true)] // Same value and unit.
+ [InlineData(1, MassUnit.Kilogram, 2, MassUnit.Kilogram, false)] // Different value.
+ [InlineData(2, MassUnit.Kilogram, 1, MassUnit.Centigram, false)] // Different value and unit.
+ [InlineData(1, MassUnit.Kilogram, 1, MassUnit.Centigram, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MassUnit unitA, double valueB, MassUnit unitB, bool expectEqual)
+ {
+ var a = new Mass(valueA, unitA);
+ var b = new Mass(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Mass.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEnergyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEnergyTestsBase.g.cs
index 6e0e75c6e1..da7ef803bd 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEnergyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEnergyTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => joulepermole.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MolarEnergyUnit.JoulePerMole, 1, MolarEnergyUnit.JoulePerMole, true)] // Same value and unit.
+ [InlineData(1, MolarEnergyUnit.JoulePerMole, 2, MolarEnergyUnit.JoulePerMole, false)] // Different value.
+ [InlineData(2, MolarEnergyUnit.JoulePerMole, 1, MolarEnergyUnit.KilojoulePerMole, false)] // Different value and unit.
+ [InlineData(1, MolarEnergyUnit.JoulePerMole, 1, MolarEnergyUnit.KilojoulePerMole, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MolarEnergyUnit unitA, double valueB, MolarEnergyUnit unitB, bool expectEqual)
+ {
+ var a = new MolarEnergy(valueA, unitA);
+ var b = new MolarEnergy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MolarEnergy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEntropyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEntropyTestsBase.g.cs
index 45386c5665..7100a708e1 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEntropyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarEntropyTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => joulepermolekelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MolarEntropyUnit.JoulePerMoleKelvin, 1, MolarEntropyUnit.JoulePerMoleKelvin, true)] // Same value and unit.
+ [InlineData(1, MolarEntropyUnit.JoulePerMoleKelvin, 2, MolarEntropyUnit.JoulePerMoleKelvin, false)] // Different value.
+ [InlineData(2, MolarEntropyUnit.JoulePerMoleKelvin, 1, MolarEntropyUnit.KilojoulePerMoleKelvin, false)] // Different value and unit.
+ [InlineData(1, MolarEntropyUnit.JoulePerMoleKelvin, 1, MolarEntropyUnit.KilojoulePerMoleKelvin, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MolarEntropyUnit unitA, double valueB, MolarEntropyUnit unitB, bool expectEqual)
+ {
+ var a = new MolarEntropy(valueA, unitA);
+ var b = new MolarEntropy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MolarEntropy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarMassTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarMassTestsBase.g.cs
index f8524af4da..484f8a6e4a 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarMassTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarMassTestsBase.g.cs
@@ -986,6 +986,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kilogrampermole.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MolarMassUnit.KilogramPerMole, 1, MolarMassUnit.KilogramPerMole, true)] // Same value and unit.
+ [InlineData(1, MolarMassUnit.KilogramPerMole, 2, MolarMassUnit.KilogramPerMole, false)] // Different value.
+ [InlineData(2, MolarMassUnit.KilogramPerMole, 1, MolarMassUnit.CentigramPerMole, false)] // Different value and unit.
+ [InlineData(1, MolarMassUnit.KilogramPerMole, 1, MolarMassUnit.CentigramPerMole, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MolarMassUnit unitA, double valueB, MolarMassUnit unitB, bool expectEqual)
+ {
+ var a = new MolarMass(valueA, unitA);
+ var b = new MolarMass(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = MolarMass.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarityTestsBase.g.cs
index 4f84016d2a..6e59581986 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/MolarityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MolarityTestsBase.g.cs
@@ -692,6 +692,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => molespercubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, MolarityUnit.MolesPerCubicMeter, 1, MolarityUnit.MolesPerCubicMeter, true)] // Same value and unit.
+ [InlineData(1, MolarityUnit.MolesPerCubicMeter, 2, MolarityUnit.MolesPerCubicMeter, false)] // Different value.
+ [InlineData(2, MolarityUnit.MolesPerCubicMeter, 1, MolarityUnit.CentimolePerLiter, false)] // Different value and unit.
+ [InlineData(1, MolarityUnit.MolesPerCubicMeter, 1, MolarityUnit.CentimolePerLiter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, MolarityUnit unitA, double valueB, MolarityUnit unitB, bool expectEqual)
+ {
+ var a = new Molarity(valueA, unitA);
+ var b = new Molarity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Molarity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PermeabilityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PermeabilityTestsBase.g.cs
index b03b669739..81c52d6521 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PermeabilityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PermeabilityTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => henrypermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PermeabilityUnit.HenryPerMeter, 1, PermeabilityUnit.HenryPerMeter, true)] // Same value and unit.
+ [InlineData(1, PermeabilityUnit.HenryPerMeter, 2, PermeabilityUnit.HenryPerMeter, false)] // Different value.
+ [InlineData(2, PermeabilityUnit.HenryPerMeter, 1, PermeabilityUnit.HenryPerMeter, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, PermeabilityUnit unitA, double valueB, PermeabilityUnit unitB, bool expectEqual)
+ {
+ var a = new Permeability(valueA, unitA);
+ var b = new Permeability(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Permeability.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PermittivityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PermittivityTestsBase.g.cs
index bf1e279d93..fb271b6d5b 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PermittivityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PermittivityTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => faradpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PermittivityUnit.FaradPerMeter, 1, PermittivityUnit.FaradPerMeter, true)] // Same value and unit.
+ [InlineData(1, PermittivityUnit.FaradPerMeter, 2, PermittivityUnit.FaradPerMeter, false)] // Different value.
+ [InlineData(2, PermittivityUnit.FaradPerMeter, 1, PermittivityUnit.FaradPerMeter, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, PermittivityUnit unitA, double valueB, PermittivityUnit unitB, bool expectEqual)
+ {
+ var a = new Permittivity(valueA, unitA);
+ var b = new Permittivity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Permittivity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PorousMediumPermeabilityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PorousMediumPermeabilityTestsBase.g.cs
index 7872e0f7b2..9448088ace 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PorousMediumPermeabilityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PorousMediumPermeabilityTestsBase.g.cs
@@ -453,6 +453,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => squaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PorousMediumPermeabilityUnit.SquareMeter, 1, PorousMediumPermeabilityUnit.SquareMeter, true)] // Same value and unit.
+ [InlineData(1, PorousMediumPermeabilityUnit.SquareMeter, 2, PorousMediumPermeabilityUnit.SquareMeter, false)] // Different value.
+ [InlineData(2, PorousMediumPermeabilityUnit.SquareMeter, 1, PorousMediumPermeabilityUnit.Darcy, false)] // Different value and unit.
+ [InlineData(1, PorousMediumPermeabilityUnit.SquareMeter, 1, PorousMediumPermeabilityUnit.Darcy, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, PorousMediumPermeabilityUnit unitA, double valueB, PorousMediumPermeabilityUnit unitB, bool expectEqual)
+ {
+ var a = new PorousMediumPermeability(valueA, unitA);
+ var b = new PorousMediumPermeability(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = PorousMediumPermeability.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PowerDensityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PowerDensityTestsBase.g.cs
index 88c468611d..8c58a205f7 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PowerDensityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PowerDensityTestsBase.g.cs
@@ -1730,6 +1730,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => wattpercubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PowerDensityUnit.WattPerCubicMeter, 1, PowerDensityUnit.WattPerCubicMeter, true)] // Same value and unit.
+ [InlineData(1, PowerDensityUnit.WattPerCubicMeter, 2, PowerDensityUnit.WattPerCubicMeter, false)] // Different value.
+ [InlineData(2, PowerDensityUnit.WattPerCubicMeter, 1, PowerDensityUnit.DecawattPerCubicFoot, false)] // Different value and unit.
+ [InlineData(1, PowerDensityUnit.WattPerCubicMeter, 1, PowerDensityUnit.DecawattPerCubicFoot, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, PowerDensityUnit unitA, double valueB, PowerDensityUnit unitB, bool expectEqual)
+ {
+ var a = new PowerDensity(valueA, unitA);
+ var b = new PowerDensity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = PowerDensity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PowerRatioTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PowerRatioTestsBase.g.cs
index e411e27045..5bfb2cf143 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PowerRatioTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PowerRatioTestsBase.g.cs
@@ -376,6 +376,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => decibelwatt.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PowerRatioUnit.DecibelWatt, 1, PowerRatioUnit.DecibelWatt, true)] // Same value and unit.
+ [InlineData(1, PowerRatioUnit.DecibelWatt, 2, PowerRatioUnit.DecibelWatt, false)] // Different value.
+ [InlineData(2, PowerRatioUnit.DecibelWatt, 1, PowerRatioUnit.DecibelMilliwatt, false)] // Different value and unit.
+ [InlineData(1, PowerRatioUnit.DecibelWatt, 1, PowerRatioUnit.DecibelMilliwatt, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, PowerRatioUnit unitA, double valueB, PowerRatioUnit unitB, bool expectEqual)
+ {
+ var a = new PowerRatio(valueA, unitA);
+ var b = new PowerRatio(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = PowerRatio.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PowerTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PowerTestsBase.g.cs
index 699c327702..8b265aadb9 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PowerTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PowerTestsBase.g.cs
@@ -1169,6 +1169,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => watt.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PowerUnit.Watt, 1, PowerUnit.Watt, true)] // Same value and unit.
+ [InlineData(1, PowerUnit.Watt, 2, PowerUnit.Watt, false)] // Different value.
+ [InlineData(2, PowerUnit.Watt, 1, PowerUnit.BoilerHorsepower, false)] // Different value and unit.
+ [InlineData(1, PowerUnit.Watt, 1, PowerUnit.BoilerHorsepower, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(decimal valueA, PowerUnit unitA, decimal valueB, PowerUnit unitB, bool expectEqual)
+ {
+ var a = new Power(valueA, unitA);
+ var b = new Power(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Power.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PressureChangeRateTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PressureChangeRateTestsBase.g.cs
index e6ce1addf0..3cebe87f40 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PressureChangeRateTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PressureChangeRateTestsBase.g.cs
@@ -1392,6 +1392,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => pascalpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PressureChangeRateUnit.PascalPerSecond, 1, PressureChangeRateUnit.PascalPerSecond, true)] // Same value and unit.
+ [InlineData(1, PressureChangeRateUnit.PascalPerSecond, 2, PressureChangeRateUnit.PascalPerSecond, false)] // Different value.
+ [InlineData(2, PressureChangeRateUnit.PascalPerSecond, 1, PressureChangeRateUnit.AtmospherePerSecond, false)] // Different value and unit.
+ [InlineData(1, PressureChangeRateUnit.PascalPerSecond, 1, PressureChangeRateUnit.AtmospherePerSecond, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, PressureChangeRateUnit unitA, double valueB, PressureChangeRateUnit unitB, bool expectEqual)
+ {
+ var a = new PressureChangeRate(valueA, unitA);
+ var b = new PressureChangeRate(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = PressureChangeRate.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/PressureTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/PressureTestsBase.g.cs
index e13f61c734..5421f26c52 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/PressureTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/PressureTestsBase.g.cs
@@ -2773,6 +2773,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => pascal.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, PressureUnit.Pascal, 1, PressureUnit.Pascal, true)] // Same value and unit.
+ [InlineData(1, PressureUnit.Pascal, 2, PressureUnit.Pascal, false)] // Different value.
+ [InlineData(2, PressureUnit.Pascal, 1, PressureUnit.Atmosphere, false)] // Different value and unit.
+ [InlineData(1, PressureUnit.Pascal, 1, PressureUnit.Atmosphere, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, PressureUnit unitA, double valueB, PressureUnit unitB, bool expectEqual)
+ {
+ var a = new Pressure(valueA, unitA);
+ var b = new Pressure(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Pressure.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/RatioChangeRateTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/RatioChangeRateTestsBase.g.cs
index a2c7663d02..e40a3c475b 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/RatioChangeRateTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/RatioChangeRateTestsBase.g.cs
@@ -348,6 +348,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => decimalfractionpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, RatioChangeRateUnit.DecimalFractionPerSecond, 1, RatioChangeRateUnit.DecimalFractionPerSecond, true)] // Same value and unit.
+ [InlineData(1, RatioChangeRateUnit.DecimalFractionPerSecond, 2, RatioChangeRateUnit.DecimalFractionPerSecond, false)] // Different value.
+ [InlineData(2, RatioChangeRateUnit.DecimalFractionPerSecond, 1, RatioChangeRateUnit.PercentPerSecond, false)] // Different value and unit.
+ [InlineData(1, RatioChangeRateUnit.DecimalFractionPerSecond, 1, RatioChangeRateUnit.PercentPerSecond, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, RatioChangeRateUnit unitA, double valueB, RatioChangeRateUnit unitB, bool expectEqual)
+ {
+ var a = new RatioChangeRate(valueA, unitA);
+ var b = new RatioChangeRate(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = RatioChangeRate.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/RatioTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/RatioTestsBase.g.cs
index a1852e6120..e04b81d01d 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/RatioTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/RatioTestsBase.g.cs
@@ -488,6 +488,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => decimalfraction.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, RatioUnit.DecimalFraction, 1, RatioUnit.DecimalFraction, true)] // Same value and unit.
+ [InlineData(1, RatioUnit.DecimalFraction, 2, RatioUnit.DecimalFraction, false)] // Different value.
+ [InlineData(2, RatioUnit.DecimalFraction, 1, RatioUnit.PartPerBillion, false)] // Different value and unit.
+ [InlineData(1, RatioUnit.DecimalFraction, 1, RatioUnit.PartPerBillion, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, RatioUnit unitA, double valueB, RatioUnit unitB, bool expectEqual)
+ {
+ var a = new Ratio(valueA, unitA);
+ var b = new Ratio(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Ratio.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ReactiveEnergyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ReactiveEnergyTestsBase.g.cs
index e1c636db0c..fa58df0fa6 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ReactiveEnergyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ReactiveEnergyTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltamperereactivehour.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ReactiveEnergyUnit.VoltampereReactiveHour, 1, ReactiveEnergyUnit.VoltampereReactiveHour, true)] // Same value and unit.
+ [InlineData(1, ReactiveEnergyUnit.VoltampereReactiveHour, 2, ReactiveEnergyUnit.VoltampereReactiveHour, false)] // Different value.
+ [InlineData(2, ReactiveEnergyUnit.VoltampereReactiveHour, 1, ReactiveEnergyUnit.KilovoltampereReactiveHour, false)] // Different value and unit.
+ [InlineData(1, ReactiveEnergyUnit.VoltampereReactiveHour, 1, ReactiveEnergyUnit.KilovoltampereReactiveHour, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ReactiveEnergyUnit unitA, double valueB, ReactiveEnergyUnit unitB, bool expectEqual)
+ {
+ var a = new ReactiveEnergy(valueA, unitA);
+ var b = new ReactiveEnergy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ReactiveEnergy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ReactivePowerTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ReactivePowerTestsBase.g.cs
index e26822c8cc..6e25f69d15 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ReactivePowerTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ReactivePowerTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => voltamperereactive.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ReactivePowerUnit.VoltampereReactive, 1, ReactivePowerUnit.VoltampereReactive, true)] // Same value and unit.
+ [InlineData(1, ReactivePowerUnit.VoltampereReactive, 2, ReactivePowerUnit.VoltampereReactive, false)] // Different value.
+ [InlineData(2, ReactivePowerUnit.VoltampereReactive, 1, ReactivePowerUnit.GigavoltampereReactive, false)] // Different value and unit.
+ [InlineData(1, ReactivePowerUnit.VoltampereReactive, 1, ReactivePowerUnit.GigavoltampereReactive, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ReactivePowerUnit unitA, double valueB, ReactivePowerUnit unitB, bool expectEqual)
+ {
+ var a = new ReactivePower(valueA, unitA);
+ var b = new ReactivePower(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ReactivePower.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalAreaTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalAreaTestsBase.g.cs
index a4f1991631..ef95ea5499 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalAreaTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalAreaTestsBase.g.cs
@@ -663,6 +663,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => inversesquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ReciprocalAreaUnit.InverseSquareMeter, 1, ReciprocalAreaUnit.InverseSquareMeter, true)] // Same value and unit.
+ [InlineData(1, ReciprocalAreaUnit.InverseSquareMeter, 2, ReciprocalAreaUnit.InverseSquareMeter, false)] // Different value.
+ [InlineData(2, ReciprocalAreaUnit.InverseSquareMeter, 1, ReciprocalAreaUnit.InverseSquareCentimeter, false)] // Different value and unit.
+ [InlineData(1, ReciprocalAreaUnit.InverseSquareMeter, 1, ReciprocalAreaUnit.InverseSquareCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ReciprocalAreaUnit unitA, double valueB, ReciprocalAreaUnit unitB, bool expectEqual)
+ {
+ var a = new ReciprocalArea(valueA, unitA);
+ var b = new ReciprocalArea(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ReciprocalArea.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalLengthTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalLengthTestsBase.g.cs
index 2ec91984be..44e02e8cfa 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalLengthTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ReciprocalLengthTestsBase.g.cs
@@ -868,6 +868,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => inversemeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ReciprocalLengthUnit.InverseMeter, 1, ReciprocalLengthUnit.InverseMeter, true)] // Same value and unit.
+ [InlineData(1, ReciprocalLengthUnit.InverseMeter, 2, ReciprocalLengthUnit.InverseMeter, false)] // Different value.
+ [InlineData(2, ReciprocalLengthUnit.InverseMeter, 1, ReciprocalLengthUnit.InverseCentimeter, false)] // Different value and unit.
+ [InlineData(1, ReciprocalLengthUnit.InverseMeter, 1, ReciprocalLengthUnit.InverseCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ReciprocalLengthUnit unitA, double valueB, ReciprocalLengthUnit unitB, bool expectEqual)
+ {
+ var a = new ReciprocalLength(valueA, unitA);
+ var b = new ReciprocalLength(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ReciprocalLength.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/RelativeHumidityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/RelativeHumidityTestsBase.g.cs
index e6aa601591..28419821d0 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/RelativeHumidityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/RelativeHumidityTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => percent.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, RelativeHumidityUnit.Percent, 1, RelativeHumidityUnit.Percent, true)] // Same value and unit.
+ [InlineData(1, RelativeHumidityUnit.Percent, 2, RelativeHumidityUnit.Percent, false)] // Different value.
+ [InlineData(2, RelativeHumidityUnit.Percent, 1, RelativeHumidityUnit.Percent, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, RelativeHumidityUnit unitA, double valueB, RelativeHumidityUnit unitB, bool expectEqual)
+ {
+ var a = new RelativeHumidity(valueA, unitA);
+ var b = new RelativeHumidity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = RelativeHumidity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalAccelerationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalAccelerationTestsBase.g.cs
index 7a3c77030f..29e39f1b12 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalAccelerationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalAccelerationTestsBase.g.cs
@@ -442,6 +442,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => radianpersecondsquared.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, RotationalAccelerationUnit.RadianPerSecondSquared, 1, RotationalAccelerationUnit.RadianPerSecondSquared, true)] // Same value and unit.
+ [InlineData(1, RotationalAccelerationUnit.RadianPerSecondSquared, 2, RotationalAccelerationUnit.RadianPerSecondSquared, false)] // Different value.
+ [InlineData(2, RotationalAccelerationUnit.RadianPerSecondSquared, 1, RotationalAccelerationUnit.DegreePerSecondSquared, false)] // Different value and unit.
+ [InlineData(1, RotationalAccelerationUnit.RadianPerSecondSquared, 1, RotationalAccelerationUnit.DegreePerSecondSquared, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, RotationalAccelerationUnit unitA, double valueB, RotationalAccelerationUnit unitB, bool expectEqual)
+ {
+ var a = new RotationalAcceleration(valueA, unitA);
+ var b = new RotationalAcceleration(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = RotationalAcceleration.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalSpeedTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalSpeedTestsBase.g.cs
index 0cc141e030..f1e5cd1ce9 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalSpeedTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalSpeedTestsBase.g.cs
@@ -1165,6 +1165,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => radianpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, RotationalSpeedUnit.RadianPerSecond, 1, RotationalSpeedUnit.RadianPerSecond, true)] // Same value and unit.
+ [InlineData(1, RotationalSpeedUnit.RadianPerSecond, 2, RotationalSpeedUnit.RadianPerSecond, false)] // Different value.
+ [InlineData(2, RotationalSpeedUnit.RadianPerSecond, 1, RotationalSpeedUnit.CentiradianPerSecond, false)] // Different value and unit.
+ [InlineData(1, RotationalSpeedUnit.RadianPerSecond, 1, RotationalSpeedUnit.CentiradianPerSecond, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, RotationalSpeedUnit unitA, double valueB, RotationalSpeedUnit unitB, bool expectEqual)
+ {
+ var a = new RotationalSpeed(valueA, unitA);
+ var b = new RotationalSpeed(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = RotationalSpeed.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessPerLengthTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessPerLengthTestsBase.g.cs
index 55d8548739..51aaf4ad4e 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessPerLengthTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessPerLengthTestsBase.g.cs
@@ -645,6 +645,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonmeterperradianpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, 1, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, true)] // Same value and unit.
+ [InlineData(1, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, 2, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, false)] // Different value.
+ [InlineData(2, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, 1, RotationalStiffnessPerLengthUnit.KilonewtonMeterPerRadianPerMeter, false)] // Different value and unit.
+ [InlineData(1, RotationalStiffnessPerLengthUnit.NewtonMeterPerRadianPerMeter, 1, RotationalStiffnessPerLengthUnit.KilonewtonMeterPerRadianPerMeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, RotationalStiffnessPerLengthUnit unitA, double valueB, RotationalStiffnessPerLengthUnit unitB, bool expectEqual)
+ {
+ var a = new RotationalStiffnessPerLength(valueA, unitA);
+ var b = new RotationalStiffnessPerLength(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = RotationalStiffnessPerLength.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessTestsBase.g.cs
index 3d1daf3be4..419c109d57 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/RotationalStiffnessTestsBase.g.cs
@@ -2917,6 +2917,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonmeterperradian.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, RotationalStiffnessUnit.NewtonMeterPerRadian, 1, RotationalStiffnessUnit.NewtonMeterPerRadian, true)] // Same value and unit.
+ [InlineData(1, RotationalStiffnessUnit.NewtonMeterPerRadian, 2, RotationalStiffnessUnit.NewtonMeterPerRadian, false)] // Different value.
+ [InlineData(2, RotationalStiffnessUnit.NewtonMeterPerRadian, 1, RotationalStiffnessUnit.CentinewtonMeterPerDegree, false)] // Different value and unit.
+ [InlineData(1, RotationalStiffnessUnit.NewtonMeterPerRadian, 1, RotationalStiffnessUnit.CentinewtonMeterPerDegree, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, RotationalStiffnessUnit unitA, double valueB, RotationalStiffnessUnit unitB, bool expectEqual)
+ {
+ var a = new RotationalStiffness(valueA, unitA);
+ var b = new RotationalStiffness(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = RotationalStiffness.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ScalarTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ScalarTestsBase.g.cs
index e921464326..a012816a0f 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ScalarTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ScalarTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => amount.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ScalarUnit.Amount, 1, ScalarUnit.Amount, true)] // Same value and unit.
+ [InlineData(1, ScalarUnit.Amount, 2, ScalarUnit.Amount, false)] // Different value.
+ [InlineData(2, ScalarUnit.Amount, 1, ScalarUnit.Amount, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ScalarUnit unitA, double valueB, ScalarUnit unitB, bool expectEqual)
+ {
+ var a = new Scalar(valueA, unitA);
+ var b = new Scalar(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Scalar.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/SolidAngleTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/SolidAngleTestsBase.g.cs
index 417daff6e3..212b54309f 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/SolidAngleTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/SolidAngleTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => steradian.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, SolidAngleUnit.Steradian, 1, SolidAngleUnit.Steradian, true)] // Same value and unit.
+ [InlineData(1, SolidAngleUnit.Steradian, 2, SolidAngleUnit.Steradian, false)] // Different value.
+ [InlineData(2, SolidAngleUnit.Steradian, 1, SolidAngleUnit.Steradian, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, SolidAngleUnit unitA, double valueB, SolidAngleUnit unitB, bool expectEqual)
+ {
+ var a = new SolidAngle(valueA, unitA);
+ var b = new SolidAngle(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = SolidAngle.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEnergyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEnergyTestsBase.g.cs
index 9b9987c0e6..1715ced22a 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEnergyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEnergyTestsBase.g.cs
@@ -1293,6 +1293,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => jouleperkilogram.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, SpecificEnergyUnit.JoulePerKilogram, 1, SpecificEnergyUnit.JoulePerKilogram, true)] // Same value and unit.
+ [InlineData(1, SpecificEnergyUnit.JoulePerKilogram, 2, SpecificEnergyUnit.JoulePerKilogram, false)] // Different value.
+ [InlineData(2, SpecificEnergyUnit.JoulePerKilogram, 1, SpecificEnergyUnit.BtuPerPound, false)] // Different value and unit.
+ [InlineData(1, SpecificEnergyUnit.JoulePerKilogram, 1, SpecificEnergyUnit.BtuPerPound, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, SpecificEnergyUnit unitA, double valueB, SpecificEnergyUnit unitB, bool expectEqual)
+ {
+ var a = new SpecificEnergy(valueA, unitA);
+ var b = new SpecificEnergy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = SpecificEnergy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEntropyTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEntropyTestsBase.g.cs
index a01c658cec..a44601541d 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEntropyTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificEntropyTestsBase.g.cs
@@ -617,6 +617,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => jouleperkilogramkelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, SpecificEntropyUnit.JoulePerKilogramKelvin, 1, SpecificEntropyUnit.JoulePerKilogramKelvin, true)] // Same value and unit.
+ [InlineData(1, SpecificEntropyUnit.JoulePerKilogramKelvin, 2, SpecificEntropyUnit.JoulePerKilogramKelvin, false)] // Different value.
+ [InlineData(2, SpecificEntropyUnit.JoulePerKilogramKelvin, 1, SpecificEntropyUnit.BtuPerPoundFahrenheit, false)] // Different value and unit.
+ [InlineData(1, SpecificEntropyUnit.JoulePerKilogramKelvin, 1, SpecificEntropyUnit.BtuPerPoundFahrenheit, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, SpecificEntropyUnit unitA, double valueB, SpecificEntropyUnit unitB, bool expectEqual)
+ {
+ var a = new SpecificEntropy(valueA, unitA);
+ var b = new SpecificEntropy(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = SpecificEntropy.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificFuelConsumptionTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificFuelConsumptionTestsBase.g.cs
index ece7c532e8..d7238c98c3 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificFuelConsumptionTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificFuelConsumptionTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => gramperkilonewtonsecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, 1, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, true)] // Same value and unit.
+ [InlineData(1, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, 2, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, false)] // Different value.
+ [InlineData(2, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, 1, SpecificFuelConsumptionUnit.KilogramPerKilogramForceHour, false)] // Different value and unit.
+ [InlineData(1, SpecificFuelConsumptionUnit.GramPerKiloNewtonSecond, 1, SpecificFuelConsumptionUnit.KilogramPerKilogramForceHour, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, SpecificFuelConsumptionUnit unitA, double valueB, SpecificFuelConsumptionUnit unitB, bool expectEqual)
+ {
+ var a = new SpecificFuelConsumption(valueA, unitA);
+ var b = new SpecificFuelConsumption(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = SpecificFuelConsumption.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificVolumeTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificVolumeTestsBase.g.cs
index 9ed64f53b2..57270eb380 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificVolumeTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificVolumeTestsBase.g.cs
@@ -383,6 +383,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => cubicmeterperkilogram.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, SpecificVolumeUnit.CubicMeterPerKilogram, 1, SpecificVolumeUnit.CubicMeterPerKilogram, true)] // Same value and unit.
+ [InlineData(1, SpecificVolumeUnit.CubicMeterPerKilogram, 2, SpecificVolumeUnit.CubicMeterPerKilogram, false)] // Different value.
+ [InlineData(2, SpecificVolumeUnit.CubicMeterPerKilogram, 1, SpecificVolumeUnit.CubicFootPerPound, false)] // Different value and unit.
+ [InlineData(1, SpecificVolumeUnit.CubicMeterPerKilogram, 1, SpecificVolumeUnit.CubicFootPerPound, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, SpecificVolumeUnit unitA, double valueB, SpecificVolumeUnit unitB, bool expectEqual)
+ {
+ var a = new SpecificVolume(valueA, unitA);
+ var b = new SpecificVolume(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = SpecificVolume.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificWeightTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificWeightTestsBase.g.cs
index c74da17c14..d917bee5c2 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificWeightTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/SpecificWeightTestsBase.g.cs
@@ -873,6 +873,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonpercubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, SpecificWeightUnit.NewtonPerCubicMeter, 1, SpecificWeightUnit.NewtonPerCubicMeter, true)] // Same value and unit.
+ [InlineData(1, SpecificWeightUnit.NewtonPerCubicMeter, 2, SpecificWeightUnit.NewtonPerCubicMeter, false)] // Different value.
+ [InlineData(2, SpecificWeightUnit.NewtonPerCubicMeter, 1, SpecificWeightUnit.KilogramForcePerCubicCentimeter, false)] // Different value and unit.
+ [InlineData(1, SpecificWeightUnit.NewtonPerCubicMeter, 1, SpecificWeightUnit.KilogramForcePerCubicCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, SpecificWeightUnit unitA, double valueB, SpecificWeightUnit unitB, bool expectEqual)
+ {
+ var a = new SpecificWeight(valueA, unitA);
+ var b = new SpecificWeight(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = SpecificWeight.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/SpeedTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/SpeedTestsBase.g.cs
index 8baea9ee09..b71050cc7f 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/SpeedTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/SpeedTestsBase.g.cs
@@ -2153,6 +2153,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => meterpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, SpeedUnit.MeterPerSecond, 1, SpeedUnit.MeterPerSecond, true)] // Same value and unit.
+ [InlineData(1, SpeedUnit.MeterPerSecond, 2, SpeedUnit.MeterPerSecond, false)] // Different value.
+ [InlineData(2, SpeedUnit.MeterPerSecond, 1, SpeedUnit.CentimeterPerHour, false)] // Different value and unit.
+ [InlineData(1, SpeedUnit.MeterPerSecond, 1, SpeedUnit.CentimeterPerHour, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, SpeedUnit unitA, double valueB, SpeedUnit unitB, bool expectEqual)
+ {
+ var a = new Speed(valueA, unitA);
+ var b = new Speed(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Speed.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/StandardVolumeFlowTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/StandardVolumeFlowTestsBase.g.cs
index 86bf65404c..7d51646626 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/StandardVolumeFlowTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/StandardVolumeFlowTestsBase.g.cs
@@ -593,6 +593,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => standardcubicmeterpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, StandardVolumeFlowUnit.StandardCubicMeterPerSecond, 1, StandardVolumeFlowUnit.StandardCubicMeterPerSecond, true)] // Same value and unit.
+ [InlineData(1, StandardVolumeFlowUnit.StandardCubicMeterPerSecond, 2, StandardVolumeFlowUnit.StandardCubicMeterPerSecond, false)] // Different value.
+ [InlineData(2, StandardVolumeFlowUnit.StandardCubicMeterPerSecond, 1, StandardVolumeFlowUnit.StandardCubicCentimeterPerMinute, false)] // Different value and unit.
+ [InlineData(1, StandardVolumeFlowUnit.StandardCubicMeterPerSecond, 1, StandardVolumeFlowUnit.StandardCubicCentimeterPerMinute, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, StandardVolumeFlowUnit unitA, double valueB, StandardVolumeFlowUnit unitB, bool expectEqual)
+ {
+ var a = new StandardVolumeFlow(valueA, unitA);
+ var b = new StandardVolumeFlow(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = StandardVolumeFlow.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureChangeRateTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureChangeRateTestsBase.g.cs
index e40c502e76..75c8ba9ad5 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureChangeRateTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureChangeRateTestsBase.g.cs
@@ -628,6 +628,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => degreecelsiuspersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, TemperatureChangeRateUnit.DegreeCelsiusPerSecond, 1, TemperatureChangeRateUnit.DegreeCelsiusPerSecond, true)] // Same value and unit.
+ [InlineData(1, TemperatureChangeRateUnit.DegreeCelsiusPerSecond, 2, TemperatureChangeRateUnit.DegreeCelsiusPerSecond, false)] // Different value.
+ [InlineData(2, TemperatureChangeRateUnit.DegreeCelsiusPerSecond, 1, TemperatureChangeRateUnit.CentidegreeCelsiusPerSecond, false)] // Different value and unit.
+ [InlineData(1, TemperatureChangeRateUnit.DegreeCelsiusPerSecond, 1, TemperatureChangeRateUnit.CentidegreeCelsiusPerSecond, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, TemperatureChangeRateUnit unitA, double valueB, TemperatureChangeRateUnit unitB, bool expectEqual)
+ {
+ var a = new TemperatureChangeRate(valueA, unitA);
+ var b = new TemperatureChangeRate(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = TemperatureChangeRate.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureDeltaTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureDeltaTestsBase.g.cs
index 872d646a91..7194acfbec 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureDeltaTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureDeltaTestsBase.g.cs
@@ -593,6 +593,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, TemperatureDeltaUnit.Kelvin, 1, TemperatureDeltaUnit.Kelvin, true)] // Same value and unit.
+ [InlineData(1, TemperatureDeltaUnit.Kelvin, 2, TemperatureDeltaUnit.Kelvin, false)] // Different value.
+ [InlineData(2, TemperatureDeltaUnit.Kelvin, 1, TemperatureDeltaUnit.DegreeCelsius, false)] // Different value and unit.
+ [InlineData(1, TemperatureDeltaUnit.Kelvin, 1, TemperatureDeltaUnit.DegreeCelsius, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, TemperatureDeltaUnit unitA, double valueB, TemperatureDeltaUnit unitB, bool expectEqual)
+ {
+ var a = new TemperatureDelta(valueA, unitA);
+ var b = new TemperatureDelta(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = TemperatureDelta.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureGradientTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureGradientTestsBase.g.cs
index e560df6b3c..38aeb5d4e4 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureGradientTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureGradientTestsBase.g.cs
@@ -418,6 +418,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kelvinpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, TemperatureGradientUnit.KelvinPerMeter, 1, TemperatureGradientUnit.KelvinPerMeter, true)] // Same value and unit.
+ [InlineData(1, TemperatureGradientUnit.KelvinPerMeter, 2, TemperatureGradientUnit.KelvinPerMeter, false)] // Different value.
+ [InlineData(2, TemperatureGradientUnit.KelvinPerMeter, 1, TemperatureGradientUnit.DegreeCelsiusPerKilometer, false)] // Different value and unit.
+ [InlineData(1, TemperatureGradientUnit.KelvinPerMeter, 1, TemperatureGradientUnit.DegreeCelsiusPerKilometer, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, TemperatureGradientUnit unitA, double valueB, TemperatureGradientUnit unitB, bool expectEqual)
+ {
+ var a = new TemperatureGradient(valueA, unitA);
+ var b = new TemperatureGradient(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = TemperatureGradient.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureTestsBase.g.cs
index bbdf042097..b706d8f6bf 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/TemperatureTestsBase.g.cs
@@ -616,6 +616,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => kelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, TemperatureUnit.Kelvin, 1, TemperatureUnit.Kelvin, true)] // Same value and unit.
+ [InlineData(1, TemperatureUnit.Kelvin, 2, TemperatureUnit.Kelvin, false)] // Different value.
+ [InlineData(2, TemperatureUnit.Kelvin, 1, TemperatureUnit.DegreeCelsius, false)] // Different value and unit.
+ [InlineData(1, TemperatureUnit.Kelvin, 1, TemperatureUnit.DegreeCelsius, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, TemperatureUnit unitA, double valueB, TemperatureUnit unitB, bool expectEqual)
+ {
+ var a = new Temperature(valueA, unitA);
+ var b = new Temperature(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Temperature.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalConductivityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalConductivityTestsBase.g.cs
index 27f9980e7c..3b2d58bbf2 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalConductivityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalConductivityTestsBase.g.cs
@@ -348,6 +348,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => wattpermeterkelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ThermalConductivityUnit.WattPerMeterKelvin, 1, ThermalConductivityUnit.WattPerMeterKelvin, true)] // Same value and unit.
+ [InlineData(1, ThermalConductivityUnit.WattPerMeterKelvin, 2, ThermalConductivityUnit.WattPerMeterKelvin, false)] // Different value.
+ [InlineData(2, ThermalConductivityUnit.WattPerMeterKelvin, 1, ThermalConductivityUnit.BtuPerHourFootFahrenheit, false)] // Different value and unit.
+ [InlineData(1, ThermalConductivityUnit.WattPerMeterKelvin, 1, ThermalConductivityUnit.BtuPerHourFootFahrenheit, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ThermalConductivityUnit unitA, double valueB, ThermalConductivityUnit unitB, bool expectEqual)
+ {
+ var a = new ThermalConductivity(valueA, unitA);
+ var b = new ThermalConductivity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ThermalConductivity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalResistanceTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalResistanceTestsBase.g.cs
index 5a9a9f6934..fa54803112 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalResistanceTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/ThermalResistanceTestsBase.g.cs
@@ -488,6 +488,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => squaremeterkelvinperkilowatt.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, 1, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, true)] // Same value and unit.
+ [InlineData(1, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, 2, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, false)] // Different value.
+ [InlineData(2, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, 1, ThermalResistanceUnit.HourSquareFeetDegreeFahrenheitPerBtu, false)] // Different value and unit.
+ [InlineData(1, ThermalResistanceUnit.SquareMeterKelvinPerKilowatt, 1, ThermalResistanceUnit.HourSquareFeetDegreeFahrenheitPerBtu, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, ThermalResistanceUnit unitA, double valueB, ThermalResistanceUnit unitB, bool expectEqual)
+ {
+ var a = new ThermalResistance(valueA, unitA);
+ var b = new ThermalResistance(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = ThermalResistance.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/TorquePerLengthTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/TorquePerLengthTestsBase.g.cs
index 6561c41e5f..ca45b092cd 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/TorquePerLengthTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/TorquePerLengthTestsBase.g.cs
@@ -1085,6 +1085,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonmeterpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, TorquePerLengthUnit.NewtonMeterPerMeter, 1, TorquePerLengthUnit.NewtonMeterPerMeter, true)] // Same value and unit.
+ [InlineData(1, TorquePerLengthUnit.NewtonMeterPerMeter, 2, TorquePerLengthUnit.NewtonMeterPerMeter, false)] // Different value.
+ [InlineData(2, TorquePerLengthUnit.NewtonMeterPerMeter, 1, TorquePerLengthUnit.KilogramForceCentimeterPerMeter, false)] // Different value and unit.
+ [InlineData(1, TorquePerLengthUnit.NewtonMeterPerMeter, 1, TorquePerLengthUnit.KilogramForceCentimeterPerMeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, TorquePerLengthUnit unitA, double valueB, TorquePerLengthUnit unitB, bool expectEqual)
+ {
+ var a = new TorquePerLength(valueA, unitA);
+ var b = new TorquePerLength(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = TorquePerLength.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/TorqueTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/TorqueTestsBase.g.cs
index ba996fb144..2518da77a0 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/TorqueTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/TorqueTestsBase.g.cs
@@ -1225,6 +1225,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => newtonmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, TorqueUnit.NewtonMeter, 1, TorqueUnit.NewtonMeter, true)] // Same value and unit.
+ [InlineData(1, TorqueUnit.NewtonMeter, 2, TorqueUnit.NewtonMeter, false)] // Different value.
+ [InlineData(2, TorqueUnit.NewtonMeter, 1, TorqueUnit.GramForceCentimeter, false)] // Different value and unit.
+ [InlineData(1, TorqueUnit.NewtonMeter, 1, TorqueUnit.GramForceCentimeter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, TorqueUnit unitA, double valueB, TorqueUnit unitB, bool expectEqual)
+ {
+ var a = new Torque(valueA, unitA);
+ var b = new Torque(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Torque.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/TurbidityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/TurbidityTestsBase.g.cs
index 1810b75cef..85e81be46b 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/TurbidityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/TurbidityTestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => ntu.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, TurbidityUnit.NTU, 1, TurbidityUnit.NTU, true)] // Same value and unit.
+ [InlineData(1, TurbidityUnit.NTU, 2, TurbidityUnit.NTU, false)] // Different value.
+ [InlineData(2, TurbidityUnit.NTU, 1, TurbidityUnit.NTU, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, TurbidityUnit unitA, double valueB, TurbidityUnit unitB, bool expectEqual)
+ {
+ var a = new Turbidity(valueA, unitA);
+ var b = new Turbidity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Turbidity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/VitaminATestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/VitaminATestsBase.g.cs
index 5f592b4a7b..9888fa37c3 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/VitaminATestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/VitaminATestsBase.g.cs
@@ -313,6 +313,46 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => internationalunit.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, VitaminAUnit.InternationalUnit, 1, VitaminAUnit.InternationalUnit, true)] // Same value and unit.
+ [InlineData(1, VitaminAUnit.InternationalUnit, 2, VitaminAUnit.InternationalUnit, false)] // Different value.
+ [InlineData(2, VitaminAUnit.InternationalUnit, 1, VitaminAUnit.InternationalUnit, false)] // Different value and unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, VitaminAUnit unitA, double valueB, VitaminAUnit unitB, bool expectEqual)
+ {
+ var a = new VitaminA(valueA, unitA);
+ var b = new VitaminA(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = VitaminA.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeConcentrationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeConcentrationTestsBase.g.cs
index fa7daa6e0d..ee2ff359cf 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeConcentrationTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeConcentrationTestsBase.g.cs
@@ -1002,6 +1002,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => decimalfraction.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, VolumeConcentrationUnit.DecimalFraction, 1, VolumeConcentrationUnit.DecimalFraction, true)] // Same value and unit.
+ [InlineData(1, VolumeConcentrationUnit.DecimalFraction, 2, VolumeConcentrationUnit.DecimalFraction, false)] // Different value.
+ [InlineData(2, VolumeConcentrationUnit.DecimalFraction, 1, VolumeConcentrationUnit.CentilitersPerLiter, false)] // Different value and unit.
+ [InlineData(1, VolumeConcentrationUnit.DecimalFraction, 1, VolumeConcentrationUnit.CentilitersPerLiter, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, VolumeConcentrationUnit unitA, double valueB, VolumeConcentrationUnit unitB, bool expectEqual)
+ {
+ var a = new VolumeConcentration(valueA, unitA);
+ var b = new VolumeConcentration(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = VolumeConcentration.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowPerAreaTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowPerAreaTestsBase.g.cs
index b39f7a1fb4..1a403dc603 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowPerAreaTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowPerAreaTestsBase.g.cs
@@ -348,6 +348,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => cubicmeterpersecondpersquaremeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter, 1, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter, true)] // Same value and unit.
+ [InlineData(1, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter, 2, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter, false)] // Different value.
+ [InlineData(2, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter, 1, VolumeFlowPerAreaUnit.CubicFootPerMinutePerSquareFoot, false)] // Different value and unit.
+ [InlineData(1, VolumeFlowPerAreaUnit.CubicMeterPerSecondPerSquareMeter, 1, VolumeFlowPerAreaUnit.CubicFootPerMinutePerSquareFoot, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, VolumeFlowPerAreaUnit unitA, double valueB, VolumeFlowPerAreaUnit unitB, bool expectEqual)
+ {
+ var a = new VolumeFlowPerArea(valueA, unitA);
+ var b = new VolumeFlowPerArea(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = VolumeFlowPerArea.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowTestsBase.g.cs
index 3730bfc089..1dbbb861ef 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeFlowTestsBase.g.cs
@@ -4110,6 +4110,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => cubicmeterpersecond.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, VolumeFlowUnit.CubicMeterPerSecond, 1, VolumeFlowUnit.CubicMeterPerSecond, true)] // Same value and unit.
+ [InlineData(1, VolumeFlowUnit.CubicMeterPerSecond, 2, VolumeFlowUnit.CubicMeterPerSecond, false)] // Different value.
+ [InlineData(2, VolumeFlowUnit.CubicMeterPerSecond, 1, VolumeFlowUnit.AcreFootPerDay, false)] // Different value and unit.
+ [InlineData(1, VolumeFlowUnit.CubicMeterPerSecond, 1, VolumeFlowUnit.AcreFootPerDay, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, VolumeFlowUnit unitA, double valueB, VolumeFlowUnit unitB, bool expectEqual)
+ {
+ var a = new VolumeFlow(valueA, unitA);
+ var b = new VolumeFlow(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = VolumeFlow.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumePerLengthTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumePerLengthTestsBase.g.cs
index e436c7baef..6880712263 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumePerLengthTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumePerLengthTestsBase.g.cs
@@ -523,6 +523,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => cubicmeterpermeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, VolumePerLengthUnit.CubicMeterPerMeter, 1, VolumePerLengthUnit.CubicMeterPerMeter, true)] // Same value and unit.
+ [InlineData(1, VolumePerLengthUnit.CubicMeterPerMeter, 2, VolumePerLengthUnit.CubicMeterPerMeter, false)] // Different value.
+ [InlineData(2, VolumePerLengthUnit.CubicMeterPerMeter, 1, VolumePerLengthUnit.CubicYardPerFoot, false)] // Different value and unit.
+ [InlineData(1, VolumePerLengthUnit.CubicMeterPerMeter, 1, VolumePerLengthUnit.CubicYardPerFoot, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, VolumePerLengthUnit unitA, double valueB, VolumePerLengthUnit unitB, bool expectEqual)
+ {
+ var a = new VolumePerLength(valueA, unitA);
+ var b = new VolumePerLength(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = VolumePerLength.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeTestsBase.g.cs
index e1baf572b9..1cc0c942e3 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumeTestsBase.g.cs
@@ -3094,6 +3094,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => cubicmeter.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, VolumeUnit.CubicMeter, 1, VolumeUnit.CubicMeter, true)] // Same value and unit.
+ [InlineData(1, VolumeUnit.CubicMeter, 2, VolumeUnit.CubicMeter, false)] // Different value.
+ [InlineData(2, VolumeUnit.CubicMeter, 1, VolumeUnit.AcreFoot, false)] // Different value and unit.
+ [InlineData(1, VolumeUnit.CubicMeter, 1, VolumeUnit.AcreFoot, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, VolumeUnit unitA, double valueB, VolumeUnit unitB, bool expectEqual)
+ {
+ var a = new Volume(valueA, unitA);
+ var b = new Volume(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = Volume.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumetricHeatCapacityTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumetricHeatCapacityTestsBase.g.cs
index 25ee9d7cc0..2f193bf140 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/VolumetricHeatCapacityTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/VolumetricHeatCapacityTestsBase.g.cs
@@ -593,6 +593,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => joulepercubicmeterkelvin.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, 1, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, true)] // Same value and unit.
+ [InlineData(1, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, 2, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, false)] // Different value.
+ [InlineData(2, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, 1, VolumetricHeatCapacityUnit.BtuPerCubicFootDegreeFahrenheit, false)] // Different value and unit.
+ [InlineData(1, VolumetricHeatCapacityUnit.JoulePerCubicMeterKelvin, 1, VolumetricHeatCapacityUnit.BtuPerCubicFootDegreeFahrenheit, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, VolumetricHeatCapacityUnit unitA, double valueB, VolumetricHeatCapacityUnit unitB, bool expectEqual)
+ {
+ var a = new VolumetricHeatCapacity(valueA, unitA);
+ var b = new VolumetricHeatCapacity(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = VolumetricHeatCapacity.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/WarpingMomentOfInertiaTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/WarpingMomentOfInertiaTestsBase.g.cs
index 891229efd6..2a8bf2e01c 100644
--- a/UnitsNet.Tests/GeneratedCode/TestsBase/WarpingMomentOfInertiaTestsBase.g.cs
+++ b/UnitsNet.Tests/GeneratedCode/TestsBase/WarpingMomentOfInertiaTestsBase.g.cs
@@ -632,6 +632,47 @@ public void CompareToThrowsOnNull()
Assert.Throws(() => metertothesixth.CompareTo(null));
}
+ [Theory]
+ [InlineData(1, WarpingMomentOfInertiaUnit.MeterToTheSixth, 1, WarpingMomentOfInertiaUnit.MeterToTheSixth, true)] // Same value and unit.
+ [InlineData(1, WarpingMomentOfInertiaUnit.MeterToTheSixth, 2, WarpingMomentOfInertiaUnit.MeterToTheSixth, false)] // Different value.
+ [InlineData(2, WarpingMomentOfInertiaUnit.MeterToTheSixth, 1, WarpingMomentOfInertiaUnit.CentimeterToTheSixth, false)] // Different value and unit.
+ [InlineData(1, WarpingMomentOfInertiaUnit.MeterToTheSixth, 1, WarpingMomentOfInertiaUnit.CentimeterToTheSixth, false)] // Different unit.
+ public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, WarpingMomentOfInertiaUnit unitA, double valueB, WarpingMomentOfInertiaUnit unitB, bool expectEqual)
+ {
+ var a = new WarpingMomentOfInertia(valueA, unitA);
+ var b = new WarpingMomentOfInertia(valueB, unitB);
+
+ // Operator overloads.
+ Assert.Equal(expectEqual, a == b);
+ Assert.Equal(expectEqual, b == a);
+ Assert.Equal(!expectEqual, a != b);
+ Assert.Equal(!expectEqual, b != a);
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals(b));
+ Assert.Equal(expectEqual, b.Equals(a));
+
+ // IEquatable
+ Assert.Equal(expectEqual, a.Equals((object)b));
+ Assert.Equal(expectEqual, b.Equals((object)a));
+ }
+
+ [Fact]
+ public void Equals_Null_ReturnsFalse()
+ {
+ var a = WarpingMomentOfInertia.Zero;
+
+ Assert.False(a.Equals((object)null));
+
+ // "The result of the expression is always 'false'..."
+ #pragma warning disable CS8073
+ Assert.False(a == null);
+ Assert.False(null == a);
+ Assert.True(a != null);
+ Assert.True(null != a);
+ #pragma warning restore CS8073
+ }
+
[Fact]
public void Equals_RelativeTolerance_IsImplemented()
{
diff --git a/UnitsNet.Tests/UnitsNet.Tests.csproj b/UnitsNet.Tests/UnitsNet.Tests.csproj
index bad664ac01..c39367da2b 100644
--- a/UnitsNet.Tests/UnitsNet.Tests.csproj
+++ b/UnitsNet.Tests/UnitsNet.Tests.csproj
@@ -5,6 +5,7 @@
UnitsNet.Tests
latest
true
+ CS0618
diff --git a/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs b/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs
index 576f94fc12..6f46045043 100644
--- a/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/Acceleration.g.cs
@@ -35,7 +35,7 @@ namespace UnitsNet
/// Acceleration, in physics, is the rate at which the velocity of an object changes over time. An object's acceleration is the net result of any and all forces acting on the object, as described by Newton's Second Law. The SI unit for acceleration is the Meter per second squared (m/s²). Accelerations are vector quantities (they have magnitude and direction) and add according to the parallelogram law. As a vector, the calculated net force is equal to the product of the object's mass (a scalar quantity) and the acceleration.
///
[DataContract]
- public readonly partial struct Acceleration : IQuantity, IComparable, IComparable, IConvertible, IFormattable
+ public readonly partial struct Acceleration : IQuantity, IEquatable, IComparable, IComparable, IConvertible, IFormattable
{
///
/// The numeric value this quantity was constructed with.
@@ -712,16 +712,80 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Accel
return left.Value > right.ToUnit(left.Unit).Value;
}
+ // We use obsolete attribute to communicate the preferred equality members to use.
+ // CS0809: Obsolete member 'memberA' overrides non-obsolete member 'memberB'.
+ #pragma warning disable CS0809
+
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public static bool operator ==(Acceleration left, Acceleration right)
+ {
+ return left.Equals(right);
+ }
+
+ /// Indicates strict inequality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public static bool operator !=(Acceleration left, Acceleration right)
+ {
+ return !(left == right);
+ }
+
+ ///
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public override bool Equals(object obj)
+ {
+ if (obj is null || !(obj is Acceleration otherQuantity))
+ return false;
+
+ return Equals(otherQuantity);
+ }
+
///
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public bool Equals(Acceleration other)
+ {
+ return new { Value, Unit }.Equals(new { other.Value, other.Unit });
+ }
+
+ #pragma warning restore CS0809
+
+ /// Compares the current with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other when converted to the same unit.
+ /// An object to compare with this instance.
+ ///
+ /// is not the same type as this instance.
+ ///
+ /// A value that indicates the relative order of the quantities being compared. The return value has these meanings:
+ ///
+ /// Value Meaning
+ /// - Less than zero This instance precedes in the sort order.
+ /// - Zero This instance occurs in the same position in the sort order as .
+ /// - Greater than zero This instance follows in the sort order.
+ ///
+ ///
public int CompareTo(object obj)
{
if (obj is null) throw new ArgumentNullException(nameof(obj));
- if (!(obj is Acceleration objAcceleration)) throw new ArgumentException("Expected type Acceleration.", nameof(obj));
+ if (!(obj is Acceleration otherQuantity)) throw new ArgumentException("Expected type Acceleration.", nameof(obj));
- return CompareTo(objAcceleration);
+ return CompareTo(otherQuantity);
}
- ///
+ /// Compares the current with another and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other when converted to the same unit.
+ /// A quantity to compare with this instance.
+ /// A value that indicates the relative order of the quantities being compared. The return value has these meanings:
+ ///
+ /// Value Meaning
+ /// - Less than zero This instance precedes in the sort order.
+ /// - Zero This instance occurs in the same position in the sort order as .
+ /// - Greater than zero This instance follows in the sort order.
+ ///
+ ///
public int CompareTo(Acceleration other)
{
return _value.CompareTo(other.ToUnit(this.Unit).Value);
@@ -760,7 +824,7 @@ public int CompareTo(Acceleration other)
///
///
/// Note that it is advised against specifying zero difference, due to the nature
- /// of floating point operations and using System.Double internally.
+ /// of floating-point operations and using double internally.
///
///
/// The other quantity to compare to.
@@ -917,7 +981,7 @@ private bool TryToUnit(AccelerationUnit unit, out Acceleration? converted)
_ => null!
};
- return converted != null;
+ return converted is not null;
}
///
diff --git a/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs b/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs
index 76e9593fda..872a8d9f7b 100644
--- a/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/AmountOfSubstance.g.cs
@@ -35,7 +35,7 @@ namespace UnitsNet
/// Mole is the amount of substance containing Avagadro's Number (6.02 x 10 ^ 23) of real particles such as molecules,atoms, ions or radicals.
///
[DataContract]
- public readonly partial struct AmountOfSubstance : IQuantity, IComparable, IComparable, IConvertible, IFormattable
+ public readonly partial struct AmountOfSubstance : IQuantity, IEquatable, IComparable, IComparable, IConvertible, IFormattable
{
///
/// The numeric value this quantity was constructed with.
@@ -717,16 +717,80 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Amoun
return left.Value > right.ToUnit(left.Unit).Value;
}
+ // We use obsolete attribute to communicate the preferred equality members to use.
+ // CS0809: Obsolete member 'memberA' overrides non-obsolete member 'memberB'.
+ #pragma warning disable CS0809
+
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public static bool operator ==(AmountOfSubstance left, AmountOfSubstance right)
+ {
+ return left.Equals(right);
+ }
+
+ /// Indicates strict inequality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public static bool operator !=(AmountOfSubstance left, AmountOfSubstance right)
+ {
+ return !(left == right);
+ }
+
+ ///
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public override bool Equals(object obj)
+ {
+ if (obj is null || !(obj is AmountOfSubstance otherQuantity))
+ return false;
+
+ return Equals(otherQuantity);
+ }
+
///
+ /// Indicates strict equality of two quantities, where both and are exactly equal.
+ /// Consider using to check equality across different units and to specify a floating-point number error tolerance.
+ [Obsolete("Consider using Equals(Angle, double, ComparisonType) to check equality across different units and to specify a floating-point number error tolerance.")]
+ public bool Equals(AmountOfSubstance other)
+ {
+ return new { Value, Unit }.Equals(new { other.Value, other.Unit });
+ }
+
+ #pragma warning restore CS0809
+
+ /// Compares the current with another object of the same type and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other when converted to the same unit.
+ /// An object to compare with this instance.
+ ///
+ /// is not the same type as this instance.
+ ///
+ /// A value that indicates the relative order of the quantities being compared. The return value has these meanings:
+ ///
+ /// Value Meaning
+ /// - Less than zero This instance precedes in the sort order.
+ /// - Zero This instance occurs in the same position in the sort order as .
+ /// - Greater than zero This instance follows in the sort order.
+ ///
+ ///
public int CompareTo(object obj)
{
if (obj is null) throw new ArgumentNullException(nameof(obj));
- if (!(obj is AmountOfSubstance objAmountOfSubstance)) throw new ArgumentException("Expected type AmountOfSubstance.", nameof(obj));
+ if (!(obj is AmountOfSubstance otherQuantity)) throw new ArgumentException("Expected type AmountOfSubstance.", nameof(obj));
- return CompareTo(objAmountOfSubstance);
+ return CompareTo(otherQuantity);
}
- ///
+ /// Compares the current with another and returns an integer that indicates whether the current instance precedes, follows, or occurs in the same position in the sort order as the other when converted to the same unit.
+ /// A quantity to compare with this instance.
+ /// A value that indicates the relative order of the quantities being compared. The return value has these meanings:
+ ///
+ /// Value Meaning
+ /// - Less than zero This instance precedes in the sort order.
+ /// - Zero This instance occurs in the same position in the sort order as .
+ /// - Greater than zero This instance follows in the sort order.
+ ///
+ ///
public int CompareTo(AmountOfSubstance other)
{
return _value.CompareTo(other.ToUnit(this.Unit).Value);
@@ -765,7 +829,7 @@ public int CompareTo(AmountOfSubstance other)
///
///
/// Note that it is advised against specifying zero difference, due to the nature
- /// of floating point operations and using System.Double internally.
+ /// of floating-point operations and using double internally.
///
///
/// The other quantity to compare to.
@@ -924,7 +988,7 @@ private bool TryToUnit(AmountOfSubstanceUnit unit, out AmountOfSubstance? conver
_ => null!
};
- return converted != null;
+ return converted is not null;
}
///
diff --git a/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs b/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs
index 74da1a5124..921ee0f215 100644
--- a/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs
+++ b/UnitsNet/GeneratedCode/Quantities/AmplitudeRatio.g.cs
@@ -35,7 +35,7 @@ namespace UnitsNet
/// The strength of a signal expressed in decibels (dB) relative to one volt RMS.
///
[DataContract]
- public readonly partial struct AmplitudeRatio : IQuantity, IComparable, IComparable, IConvertible, IFormattable
+ public readonly partial struct AmplitudeRatio : IQuantity, IEquatable, IComparable, IComparable, IConvertible, IFormattable
{
///
/// The numeric value this quantity was constructed with.
@@ -516,16 +516,80 @@ public static bool TryParseUnit(string str, IFormatProvider? provider, out Ampli
return left.Value > right.ToUnit(left.Unit).Value;
}
+ // We use obsolete attribute to communicate the preferred equality members to use.
+ // CS0809: Obsolete member 'memberA' overrides non-obsolete member 'memberB'.
+ #pragma warning disable CS0809
+
+ /// Indicates strict equality of two