Skip to content

Commit

Permalink
Add TemperatureDelta / Duration = TemperatureChangeRate (#1370)
Browse files Browse the repository at this point in the history
Added missing operator to divide a TemperatureDelta by a time/duration
to get the TemperatureChangeRate.

---------

Co-authored-by: Andreas Gullberg Larsen <andreas.larsen84@gmail.com>
  • Loading branch information
Tim-Borcherding and angularsen committed Mar 1, 2024
1 parent d389213 commit aa61d5a
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 0 deletions.
14 changes: 14 additions & 0 deletions UnitsNet.Tests/CustomCode/TemperatureDeltaTests.cs
Expand Up @@ -64,5 +64,19 @@ public void TemperatureDeltaTimesEntropyEqualsEnergy()
Energy energy = TemperatureDelta.FromKelvins(20) * Entropy.FromJoulesPerKelvin(4);
Assert.Equal(Energy.FromJoules(80), energy);
}

[Fact]
public void TemperatureDeltaDividedByTimeSpanEqualsTemperatureChangeRate()
{
TemperatureChangeRate changeRate = TemperatureDelta.FromKelvins(20) / TimeSpan.FromSeconds(2);
Assert.Equal(TemperatureChangeRate.FromDegreesCelsiusPerSecond(10), changeRate);
}

[Fact]
public void TemperatureDeltaDividedByDurationEqualsTemperatureChangeRate()
{
TemperatureChangeRate changeRate = TemperatureDelta.FromKelvins(20) / Duration.FromSeconds(2);
Assert.Equal(TemperatureChangeRate.FromDegreesCelsiusPerSecond(10), changeRate);
}
}
}
14 changes: 14 additions & 0 deletions UnitsNet/CustomCode/Quantities/TemperatureDelta.extra.cs
@@ -1,6 +1,8 @@
// Licensed under MIT No Attribution, see LICENSE file at the root.
// Copyright 2013 Andreas Gullberg Larsen (andreas.larsen84@gmail.com). Maintained at https://github.com/angularsen/UnitsNet.

using System;

namespace UnitsNet
{
public partial struct TemperatureDelta
Expand Down Expand Up @@ -40,5 +42,17 @@ public partial struct TemperatureDelta
{
return temperatureDelta.Kelvins * cte.PerKelvin;
}

/// <summary> Get <see cref="TemperatureChangeRate"/> from <see cref="TemperatureDelta"/> divided by <see cref="TimeSpan"/>.</summary>
public static TemperatureChangeRate operator /(TemperatureDelta temperatureDelta, TimeSpan timespan)
{
return TemperatureChangeRate.FromDegreesCelsiusPerSecond(temperatureDelta.Kelvins / timespan.TotalSeconds);
}

/// <summary> Get <see cref="TemperatureChangeRate"/> from <see cref="TemperatureDelta"/> divided by <see cref="Duration"/>.</summary>
public static TemperatureChangeRate operator /(TemperatureDelta temperatureDelta, Duration duration)
{
return TemperatureChangeRate.FromDegreesCelsiusPerSecond(temperatureDelta.Kelvins / duration.Seconds);
}
}
}

0 comments on commit aa61d5a

Please sign in to comment.