1
- // Copyright(c) 2007 Andreas Gullberg Larsen
1
+ // Copyright © 2007 Andreas Gullberg Larsen (anjdreas@gmail.com).
2
2
// https://github.com/anjdreas/UnitsNet
3
3
//
4
4
// Permission is hereby granted, free of charge, to any person obtaining a copy
19
19
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
20
// THE SOFTWARE.
21
21
22
+ using System . Diagnostics . CodeAnalysis ;
23
+ using System . Globalization ;
24
+ using NUnit . Framework ;
25
+ using UnitsNet . Units ;
26
+
22
27
namespace UnitsNet . Tests . CustomCode
23
28
{
24
29
public class TemperatureTests : TemperatureTestsBase
@@ -38,5 +43,92 @@ public class TemperatureTests : TemperatureTestsBase
38
43
protected override double DegreesRoemerInOneKelvin => - 135.378750000 ;
39
44
40
45
protected override double KelvinsInOneKelvin => 1 ;
46
+
47
+ [ SuppressMessage ( "ReSharper" , "ImpureMethodCallOnReadonlyValueField" ,
48
+ Justification = "R# incorrectly identifies method as impure, due to internal method calls." ) ]
49
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 10 , 1 , ExpectedResult = "10 °C" ) ]
50
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 10 , 5 , ExpectedResult = "2 °C" ) ]
51
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 10 , - 10 , ExpectedResult = "-1 °C" ) ]
52
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 10 , 1 , ExpectedResult = "10 °F" ) ]
53
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 10 , 5 , ExpectedResult = "2 °F" ) ]
54
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 10 , - 10 , ExpectedResult = "-1 °F" ) ]
55
+ public string DividedByTemperatureDeltaEqualsTemperature ( TemperatureUnit unit , int temperatureVal , int divisor )
56
+ {
57
+ Temperature temperature = Temperature . From ( temperatureVal , unit ) ;
58
+
59
+ // Act
60
+ Temperature resultTemp = temperature . Divide ( divisor , unit ) ;
61
+
62
+ return resultTemp . ToString ( unit , CultureInfo . InvariantCulture , "{0:0} {1}" ) ;
63
+ }
64
+
65
+ [ SuppressMessage ( "ReSharper" , "ImpureMethodCallOnReadonlyValueField" ,
66
+ Justification = "R# incorrectly identifies method as impure, due to internal method calls." ) ]
67
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 10 , 0 , ExpectedResult = "0 °C" ) ]
68
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 10 , 5 , ExpectedResult = "50 °C" ) ]
69
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 10 , - 5 , ExpectedResult = "-50 °C" ) ]
70
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 10 , 0 , ExpectedResult = "0 °F" ) ]
71
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 10 , 5 , ExpectedResult = "50 °F" ) ]
72
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 10 , - 5 , ExpectedResult = "-50 °F" ) ]
73
+ public string MultiplyByTemperatureDeltaEqualsTemperature ( TemperatureUnit unit , int temperatureVal , int factor )
74
+ {
75
+ Temperature temperature = Temperature . From ( temperatureVal , unit ) ;
76
+
77
+ // Act
78
+ Temperature resultTemp = temperature . Multiply ( factor , unit ) ;
79
+
80
+ return resultTemp . ToString ( unit , CultureInfo . InvariantCulture , "{0:0} {1}" ) ;
81
+ }
82
+
83
+ [ TestCase ( TemperatureUnit . DegreeCelsius , - 10 , 0 , ExpectedResult = "-10 °C" ) ]
84
+ [ TestCase ( TemperatureUnit . DegreeCelsius , - 10 , 10 , ExpectedResult = "0 °C" ) ]
85
+ [ TestCase ( TemperatureUnit . DegreeCelsius , - 10 , 20 , ExpectedResult = "10 °C" ) ]
86
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , - 10 , 0 , ExpectedResult = "-10 °F" ) ]
87
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , - 10 , 10 , ExpectedResult = "0 °F" ) ]
88
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , - 10 , 20 , ExpectedResult = "10 °F" ) ]
89
+ public string TemperatureDeltaPlusTemperatureEqualsTemperature ( TemperatureUnit unit , int deltaVal , int temperatureVal )
90
+ {
91
+ Temperature temperature = Temperature . From ( temperatureVal , unit ) ;
92
+ TemperatureDelta delta = TemperatureDelta . From ( deltaVal , ( TemperatureDeltaUnit ) unit ) ;
93
+
94
+ // Act
95
+ Temperature resultTemp = delta + temperature ;
96
+
97
+ return resultTemp . ToString ( unit , CultureInfo . InvariantCulture , "{0:0} {1}" ) ;
98
+ }
99
+
100
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 20 , 10 , ExpectedResult = "10 °C" ) ]
101
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 20 , 20 , ExpectedResult = "0 °C" ) ]
102
+ [ TestCase ( TemperatureUnit . DegreeCelsius , 20 , 30 , ExpectedResult = "-10 °C" ) ]
103
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 20 , 10 , ExpectedResult = "10 °F" ) ]
104
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 20 , 20 , ExpectedResult = "0 °F" ) ]
105
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , 20 , 30 , ExpectedResult = "-10 °F" ) ]
106
+ public string TemperatureMinusTemperatureDeltaEqualsTemperature ( TemperatureUnit unit , int temperatureVal , int deltaVal )
107
+ {
108
+ Temperature temperature = Temperature . From ( temperatureVal , unit ) ;
109
+ TemperatureDelta delta = TemperatureDelta . From ( deltaVal , ( TemperatureDeltaUnit ) unit ) ;
110
+
111
+ // Act
112
+ Temperature resultTemp = temperature - delta ;
113
+
114
+ return resultTemp . ToString ( unit , CultureInfo . InvariantCulture , "{0:0} {1}" ) ;
115
+ }
116
+
117
+ [ TestCase ( TemperatureUnit . DegreeCelsius , - 10 , 0 , ExpectedResult = "-10 °C" ) ]
118
+ [ TestCase ( TemperatureUnit . DegreeCelsius , - 10 , 10 , ExpectedResult = "0 °C" ) ]
119
+ [ TestCase ( TemperatureUnit . DegreeCelsius , - 10 , 20 , ExpectedResult = "10 °C" ) ]
120
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , - 10 , 0 , ExpectedResult = "-10 °F" ) ]
121
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , - 10 , 10 , ExpectedResult = "0 °F" ) ]
122
+ [ TestCase ( TemperatureUnit . DegreeFahrenheit , - 10 , 20 , ExpectedResult = "10 °F" ) ]
123
+ public string TemperaturePlusTemperatureDeltaEqualsTemperature ( TemperatureUnit unit , int temperatureVal , int deltaVal )
124
+ {
125
+ Temperature temperature = Temperature . From ( temperatureVal , unit ) ;
126
+ TemperatureDelta delta = TemperatureDelta . From ( deltaVal , ( TemperatureDeltaUnit ) unit ) ;
127
+
128
+ // Act
129
+ Temperature resultTemp = temperature + delta ;
130
+
131
+ return resultTemp . ToString ( unit , CultureInfo . InvariantCulture , "{0:0} {1}" ) ;
132
+ }
41
133
}
42
134
}
0 commit comments