@@ -4,7 +4,7 @@ import Data.Fixed (E12, Fixed)
4
4
--
5
5
-- NOTE : Round functions will fail for FixNonNeg because of impl details.
6
6
--
7
- import Functora.Prelude (Fix , throw , throwString , try )
7
+ import Functora.Prelude (E30 , Fix , throw , throwString , try )
8
8
import Functora.Round (dpRound , sdRound )
9
9
import Numeric.Natural (Natural )
10
10
import System.Exit (ExitCode (.. ))
@@ -29,12 +29,14 @@ spec = do
29
29
" src/round/Functora/Round.hs"
30
30
]
31
31
32
- mkRoundSpec @ (Fixed E12 ) " dpRound/Fixed" dpRound dpRoundTestData
32
+ mkRoundSpec @ (Fixed E30 ) " dpRound/Fixed/E30" dpRound dpRoundTestData
33
+ mkRoundSpec @ (Fixed E12 ) " dpRound/Fixed/E12" dpRound dpRoundTestData
33
34
mkRoundSpec @ Rational " dpRound/Rational" dpRound dpRoundTestData
34
35
mkRoundSpec @ Double " dpRound/Double" dpRound dpRoundTestData
35
36
mkRoundSpec @ Fix " dpRound/Fix" dpRound dpRoundTestData
36
37
37
- mkRoundSpec @ (Fixed E12 ) " sdRound/Fixed" sdRound sdRoundTestData
38
+ mkRoundSpec @ (Fixed E30 ) " sdRound/Fixed/E30" sdRound sdRoundTestData
39
+ mkRoundSpec @ (Fixed E12 ) " sdRound/Fixed/E12" sdRound sdRoundTestData
38
40
mkRoundSpec @ Rational " sdRound/Rational" sdRound sdRoundTestData
39
41
mkRoundSpec @ Double " sdRound/Double" sdRound sdRoundTestData
40
42
mkRoundSpec @ Fix " sdRound/Fix" sdRound sdRoundTestData
@@ -173,7 +175,54 @@ dpRoundTestData =
173
175
(6 , 1.23456789 , 1.234568 ),
174
176
(6 , 0.123456789 , 0.123457 ),
175
177
(6 , 0.0123456789 , 0.012346 ),
176
- (6 , 0.00123456789 , 0.001235 )
178
+ (6 , 0.00123456789 , 0.001235 ),
179
+ (6 , 0 , 0 ),
180
+ (2 , - 123456789.0 , - 123456789.0 ),
181
+ (2 , - 1234.56789 , - 1234.57 ),
182
+ (2 , - 123.456789 , - 123.46 ),
183
+ (2 , - 12.3456789 , - 12.35 ),
184
+ (2 , - 1.23456789 , - 1.23 ),
185
+ (2 , - 0.123456789 , - 0.12 ),
186
+ (2 , - 0.0123456789 , - 0.01 ),
187
+ (2 , - 0.00123456789 , - 0.00 ),
188
+ (3 , - 123456789.0 , - 123456789.0 ),
189
+ (3 , - 1234.56789 , - 1234.568 ),
190
+ (3 , - 123.456789 , - 123.457 ),
191
+ (3 , - 12.3456789 , - 12.346 ),
192
+ (3 , - 1.23456789 , - 1.235 ),
193
+ (3 , - 0.123456789 , - 0.123 ),
194
+ (3 , - 0.0123456789 , - 0.012 ),
195
+ (3 , - 0.00123456789 , - 0.001 ),
196
+ (3 , - 0.000123456789 , - 0.000 ),
197
+ (4 , - 123456789.0 , - 123456789.0 ),
198
+ (4 , - 1234.56789 , - 1234.5679 ),
199
+ (4 , - 123.456789 , - 123.4568 ),
200
+ (4 , - 12.3456789 , - 12.3457 ),
201
+ (4 , - 1.23456789 , - 1.2346 ),
202
+ (4 , - 0.123456789 , - 0.1235 ),
203
+ (4 , - 0.0123456789 , - 0.0123 ),
204
+ (4 , - 0.00123456789 , - 0.0012 ),
205
+ (4 , - 0.000123456789 , - 0.0001 ),
206
+ (4 , - 0.0000123456789 , - 0.0000 ),
207
+ (5 , - 123456789.0 , - 123456789.0 ),
208
+ (5 , - 1234.56789 , - 1234.56789 ),
209
+ (5 , - 123.456789 , - 123.45679 ),
210
+ (5 , - 12.3456789 , - 12.34568 ),
211
+ (5 , - 1.23456789 , - 1.23457 ),
212
+ (5 , - 0.123456789 , - 0.12346 ),
213
+ (5 , - 0.0123456789 , - 0.01235 ),
214
+ (5 , - 0.00123456789 , - 0.00123 ),
215
+ (5 , - 0.000123456789 , - 0.00012 ),
216
+ (5 , - 0.0000123456789 , - 0.00001 ),
217
+ (5 , - 0.00000123456789 , - 0.0 ),
218
+ (6 , - 123456789.0 , - 123456789.0 ),
219
+ (6 , - 1234.56789 , - 1234.56789 ),
220
+ (6 , - 123.456789 , - 123.456789 ),
221
+ (6 , - 12.3456789 , - 12.345679 ),
222
+ (6 , - 1.23456789 , - 1.234568 ),
223
+ (6 , - 0.123456789 , - 0.123457 ),
224
+ (6 , - 0.0123456789 , - 0.012346 ),
225
+ (6 , - 0.00123456789 , - 0.001235 )
177
226
]
178
227
179
228
-- | Every element is a tuple (significantDigits, beforeRound, afterRound)
@@ -211,5 +260,39 @@ sdRoundTestData =
211
260
(7 , 123.456789 , 123.4568 ),
212
261
(7 , 12.3456789 , 12.34568 ),
213
262
(7 , 1.23456789 , 1.234568 ),
214
- (7 , 0.123456789 , 0.1234568 )
263
+ (7 , 0.123456789 , 0.1234568 ),
264
+ (7 , 0 , 0 ),
265
+ (4 , - 123456789.0 , - 123500000.0 ),
266
+ (4 , - 1234.56789 , - 1235.0 ),
267
+ (4 , - 123.456789 , - 123.5 ),
268
+ (4 , - 12.3456789 , - 12.35 ),
269
+ (4 , - 1.23456789 , - 1.235 ),
270
+ (4 , - 0.123456789 , - 0.1235 ),
271
+ (4 , - 0.0123456789 , - 0.01235 ),
272
+ (4 , - 0.00123456789 , - 0.001235 ),
273
+ (4 , - 0.000123456789 , - 0.0001235 ),
274
+ (5 , - 123456789.0 , - 123460000.0 ),
275
+ (5 , - 1234.56789 , - 1234.6 ),
276
+ (5 , - 123.456789 , - 123.46 ),
277
+ (5 , - 12.3456789 , - 12.346 ),
278
+ (5 , - 1.23456789 , - 1.2346 ),
279
+ (5 , - 0.123456789 , - 0.12346 ),
280
+ (5 , - 0.0123456789 , - 0.012346 ),
281
+ (5 , - 0.00123456789 , - 0.0012346 ),
282
+ (5 , - 0.000123456789 , - 0.00012346 ),
283
+ (6 , - 123456789.0 , - 123457000.0 ),
284
+ (6 , - 1234.56789 , - 1234.57 ),
285
+ (6 , - 123.456789 , - 123.457 ),
286
+ (6 , - 12.3456789 , - 12.3457 ),
287
+ (6 , - 1.23456789 , - 1.23457 ),
288
+ (6 , - 0.123456789 , - 0.123457 ),
289
+ (6 , - 0.0123456789 , - 0.0123457 ),
290
+ (6 , - 0.00123456789 , - 0.00123457 ),
291
+ (6 , - 0.000123456789 , - 0.000123457 ),
292
+ (7 , - 123456789.0 , - 123456800.0 ),
293
+ (7 , - 1234.56789 , - 1234.568 ),
294
+ (7 , - 123.456789 , - 123.4568 ),
295
+ (7 , - 12.3456789 , - 12.34568 ),
296
+ (7 , - 1.23456789 , - 1.234568 ),
297
+ (7 , - 0.123456789 , - 0.1234568 )
215
298
]
0 commit comments