Skip to content

Commit 95b297c

Browse files
authored
Add CoefficientOfThermalExpansion operators (#1284)
Added CTE * TemperatureDelta to CoefficientOfThermalExpansion.extra.cs. Added TemperatureDelta to TemperatureDelta.extra.cs. Added corresponding tests to CoefficientOfThermalExpansionTests.cs
1 parent 77868b4 commit 95b297c

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

UnitsNet.Tests/CustomCode/CoefficientOfThermalExpansionTests.cs

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
// Licensed under MIT No Attribution, see LICENSE file at the root.
2222
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
2323

24-
25-
using System;
24+
using Xunit;
2625

2726
namespace UnitsNet.Tests.CustomCode
2827
{
@@ -35,5 +34,25 @@ public class CoefficientOfThermalExpansionTests : CoefficientOfThermalExpansionT
3534
protected override double InverseDegreeFahrenheitInOneInverseKelvin => 0.5555555555555556;
3635

3736
protected override double InverseKelvinInOneInverseKelvin => 1.0;
37+
38+
[Fact]
39+
public void CoefficientOfThermalExpansionTimesTemperatureDelta()
40+
{
41+
double temperatureDeltaDegC = 2.0;
42+
double ctePerDegC = 0.001;
43+
CoefficientOfThermalExpansion cte = CoefficientOfThermalExpansion.FromInverseDegreeCelsius(ctePerDegC);
44+
TemperatureDelta dT = TemperatureDelta.FromDegreesCelsius(temperatureDeltaDegC);
45+
AssertEx.EqualTolerance(cte * dT, ctePerDegC * temperatureDeltaDegC, 1e-10);
46+
}
47+
48+
[Fact]
49+
public void TemperatureDeltaTimesCoefficientOfThermalExpansion()
50+
{
51+
double temperatureDeltaDegC = 2.0;
52+
double ctePerDegC = 0.001;
53+
CoefficientOfThermalExpansion cte = CoefficientOfThermalExpansion.FromInverseDegreeCelsius(ctePerDegC);
54+
TemperatureDelta dT = TemperatureDelta.FromDegreesCelsius(temperatureDeltaDegC);
55+
AssertEx.EqualTolerance(dT * cte, temperatureDeltaDegC * ctePerDegC, 1e-10);
56+
}
3857
}
3958
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// Licensed under MIT No Attribution, see LICENSE file at the root.
2+
// Copyright 2013 Andreas Gullberg Larsen ([email protected]). Maintained at https://github.com/angularsen/UnitsNet.
3+
4+
namespace UnitsNet
5+
{
6+
public partial struct CoefficientOfThermalExpansion
7+
{
8+
/// <summary>Get a scalar from a <see cref="CoefficientOfThermalExpansion"/> multiplied by a <see cref="TemperatureDelta"/>.</summary>
9+
public static double operator *(CoefficientOfThermalExpansion cte, TemperatureDelta temperatureDelta) => cte.InverseKelvin * temperatureDelta.Kelvins;
10+
}
11+
}

UnitsNet/CustomCode/Quantities/TemperatureDelta.extra.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,11 @@ public partial struct TemperatureDelta
3434
{
3535
return Energy.FromJoules(entropy.JoulesPerKelvin * temperatureDelta.Kelvins);
3636
}
37+
38+
/// <summary>Get a scalar from a <see cref="TemperatureDelta"/> multiplied by a <see cref="CoefficientOfThermalExpansion"/>.</summary>
39+
public static double operator *(TemperatureDelta temperatureDelta, CoefficientOfThermalExpansion cte)
40+
{
41+
return temperatureDelta.Kelvins * cte.InverseKelvin;
42+
}
3743
}
3844
}

0 commit comments

Comments
 (0)