@@ -60,5 +60,95 @@ public double HypotTest(double x, double y) {
60
60
public double LogGammaTest ( double v0 ) {
61
61
return Scripting . Utils . MathUtils . LogGamma ( v0 ) ;
62
62
}
63
+
64
+ [ TestCase ( double . NegativeInfinity , 3 , ExpectedResult = double . NegativeInfinity ) ]
65
+ [ TestCase ( double . NaN , 3 , ExpectedResult = double . NaN ) ]
66
+ [ TestCase ( 3.2934232 , 309 , ExpectedResult = 3.2934232 ) ]
67
+ [ TestCase ( 3.2934232 , - 309 , ExpectedResult = 0.0 ) ]
68
+ [ TestCase ( - 3.2934232 , - 309 , ExpectedResult = - 0.0 ) ]
69
+ [ TestCase ( - 0.0 , 1 , ExpectedResult = - 0.0 ) ]
70
+ [ TestCase ( 0.0 , 1 , ExpectedResult = 0.0 ) ]
71
+ [ TestCase ( 2.5 , 0 , ExpectedResult = 2.0 ) ]
72
+ [ TestCase ( 2.5 + 1.0E-15 , 0 , ExpectedResult = 3.0 ) ]
73
+ [ TestCase ( 2.5 - 1.0E-15 , 0 , ExpectedResult = 2.0 ) ]
74
+ [ TestCase ( 25.0 , - 1 , ExpectedResult = 20.0 ) ]
75
+ [ TestCase ( 3.5 , 0 , ExpectedResult = 4.0 ) ]
76
+ [ TestCase ( 35.0 , - 1 , ExpectedResult = 40.0 ) ]
77
+ [ TestCase ( - 35.0 , - 1 , ExpectedResult = - 40.0 ) ]
78
+ [ TestCase ( - 25.0 , - 1 , ExpectedResult = - 20.0 ) ]
79
+ public double RoundToEvenTest ( double number , int precision ) {
80
+ return Scripting . Utils . MathUtils . Round ( number , precision , MidpointRounding . ToEven ) ;
81
+ }
82
+
83
+ [ TestCase ( double . NegativeInfinity , ExpectedResult = double . NegativeInfinity ) ]
84
+ [ TestCase ( double . NaN , ExpectedResult = double . NaN ) ]
85
+ [ TestCase ( - 0.0 , ExpectedResult = - 0.0 ) ]
86
+ [ TestCase ( 0.0 , ExpectedResult = 0.0 ) ]
87
+ [ TestCase ( 2.5 , ExpectedResult = 2.0 ) ]
88
+ [ TestCase ( 2.5 + 1.0E-15 , ExpectedResult = 3.0 ) ]
89
+ [ TestCase ( 2.5 - 1.0E-15 , ExpectedResult = 2.0 ) ]
90
+ [ TestCase ( 3.5 , ExpectedResult = 4.0 ) ]
91
+
92
+ public double RoundToEvenTest ( double number ) {
93
+ return Scripting . Utils . MathUtils . Round ( number , 0 , MidpointRounding . ToEven ) ;
94
+ }
95
+
96
+ [ TestCase ( 2.45 , 1 , 2.4 , 1E-15 ) ]
97
+ public void RoundToEvenWithToleranceTest ( double number , int precision , double expected , double delta ) {
98
+ var actual = Scripting . Utils . MathUtils . Round ( number , precision , MidpointRounding . ToEven ) ;
99
+ Assert . AreEqual ( expected , actual , delta ) ;
100
+ }
101
+
102
+ [ TestCase ( double . NegativeInfinity , 3 , ExpectedResult = double . NegativeInfinity ) ]
103
+ [ TestCase ( double . NaN , 3 , ExpectedResult = double . NaN ) ]
104
+ [ TestCase ( 3.2934232 , 309 , ExpectedResult = 3.2934232 ) ]
105
+ [ TestCase ( 3.2934232 , - 309 , ExpectedResult = 0.0 ) ]
106
+ [ TestCase ( - 3.2934232 , - 309 , ExpectedResult = - 0.0 ) ]
107
+ [ TestCase ( - 0.0 , 1 , ExpectedResult = - 0.0 ) ]
108
+ [ TestCase ( 0.0 , 1 , ExpectedResult = 0.0 ) ]
109
+ [ TestCase ( 2.5 , 0 , ExpectedResult = 3.0 ) ]
110
+ [ TestCase ( 2.5 + 1.0E-15 , 0 , ExpectedResult = 3.0 ) ]
111
+ [ TestCase ( 2.5 - 1.0E-15 , 0 , ExpectedResult = 2.0 ) ]
112
+ [ TestCase ( 25.0 , - 1 , ExpectedResult = 30.0 ) ]
113
+ [ TestCase ( 3.5 , 0 , ExpectedResult = 4.0 ) ]
114
+ [ TestCase ( 35.0 , - 1 , ExpectedResult = 40.0 ) ]
115
+ [ TestCase ( - 35.0 , - 1 , ExpectedResult = - 40.0 ) ]
116
+ [ TestCase ( - 25.0 , - 1 , ExpectedResult = - 30.0 ) ]
117
+ public double RoundAwayFromZeroTest ( double number , int precision ) {
118
+ #pragma warning disable 618
119
+ var obsolete = Scripting . Utils . MathUtils . RoundAwayFromZero ( number , precision ) ;
120
+ #pragma warning restore 618
121
+ var actual = Scripting . Utils . MathUtils . Round ( number , precision , MidpointRounding . AwayFromZero ) ;
122
+ Assert . AreEqual ( actual , obsolete ) ;
123
+ return actual ;
124
+ }
125
+
126
+ [ TestCase ( double . NegativeInfinity , ExpectedResult = double . NegativeInfinity ) ]
127
+ [ TestCase ( double . NaN , ExpectedResult = double . NaN ) ]
128
+ [ TestCase ( - 0.0 , ExpectedResult = - 0.0 ) ]
129
+ [ TestCase ( 0.0 , ExpectedResult = 0.0 ) ]
130
+ [ TestCase ( 2.5 , ExpectedResult = 3.0 ) ]
131
+ [ TestCase ( 2.5 + 1.0E-15 , ExpectedResult = 3.0 ) ]
132
+ [ TestCase ( 2.5 - 1.0E-15 , ExpectedResult = 2.0 ) ]
133
+ [ TestCase ( 3.5 , ExpectedResult = 4.0 ) ]
134
+
135
+ public double RoundAwayFromZeroTest ( double number ) {
136
+ #pragma warning disable 618
137
+ var obsolete = Scripting . Utils . MathUtils . RoundAwayFromZero ( number ) ;
138
+ #pragma warning restore 618
139
+ var actual = Scripting . Utils . MathUtils . Round ( number , 0 , MidpointRounding . AwayFromZero ) ;
140
+ Assert . AreEqual ( actual , obsolete ) ;
141
+ return actual ;
142
+ }
143
+
144
+ [ TestCase ( 2.45 , 1 , 2.5 , 1E-15 ) ]
145
+ public void RoundAwayFromZeroWithToleranceTest ( double number , int precision , double expected , double delta ) {
146
+ #pragma warning disable 618
147
+ var obsolete = Scripting . Utils . MathUtils . RoundAwayFromZero ( number , precision ) ;
148
+ #pragma warning restore 618
149
+ var actual = Scripting . Utils . MathUtils . Round ( number , precision , MidpointRounding . AwayFromZero ) ;
150
+ Assert . AreEqual ( actual , obsolete ) ;
151
+ Assert . AreEqual ( expected , actual , delta ) ;
152
+ }
63
153
}
64
154
}
0 commit comments