~pythonregexp2.7/python/issue2636-11

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
------------------------------------------------------------------------
-- dqRemainderNear.decTest -- decQuad remainder-near                  --
-- Copyright (c) IBM Corporation, 1981, 2008.  All rights reserved.   --
------------------------------------------------------------------------
-- Please see the document "General Decimal Arithmetic Testcases"     --
-- at http://www2.hursley.ibm.com/decimal for the description of      --
-- these testcases.                                                   --
--                                                                    --
-- These testcases are experimental ('beta' versions), and they       --
-- may contain errors.  They are offered on an as-is basis.  In       --
-- particular, achieving the same results as the tests here is not    --
-- a guarantee that an implementation complies with any Standard      --
-- or specification.  The tests are not exhaustive.                   --
--                                                                    --
-- Please send comments, suggestions, and corrections to the author:  --
--   Mike Cowlishaw, IBM Fellow                                       --
--   IBM UK, PO Box 31, Birmingham Road, Warwick CV34 5JL, UK         --
--   mfc@uk.ibm.com                                                   --
------------------------------------------------------------------------
version: 2.58

extended:    1
clamp:       1
precision:   34
maxExponent: 6144
minExponent: -6143
rounding:    half_even

-- sanity checks (as base, above)
dqrmn001 remaindernear  1     1    ->  0
dqrmn002 remaindernear  2     1    ->  0
dqrmn003 remaindernear  1     2    ->  1
dqrmn004 remaindernear  2     2    ->  0
dqrmn005 remaindernear  0     1    ->  0
dqrmn006 remaindernear  0     2    ->  0
dqrmn007 remaindernear  1     3    ->  1
dqrmn008 remaindernear  2     3    -> -1
dqrmn009 remaindernear  3     3    ->  0

dqrmn010 remaindernear  2.4   1    ->  0.4
dqrmn011 remaindernear  2.4   -1   ->  0.4
dqrmn012 remaindernear  -2.4  1    ->  -0.4
dqrmn013 remaindernear  -2.4  -1   ->  -0.4
dqrmn014 remaindernear  2.40  1    ->  0.40
dqrmn015 remaindernear  2.400 1    ->  0.400
dqrmn016 remaindernear  2.4   2    ->  0.4
dqrmn017 remaindernear  2.400 2    ->  0.400
dqrmn018 remaindernear  2.    2    ->  0
dqrmn019 remaindernear  20    20   ->  0

dqrmn020 remaindernear  187   187    ->  0
dqrmn021 remaindernear  5     2      ->  1
dqrmn022 remaindernear  5     2.0    ->  1.0
dqrmn023 remaindernear  5     2.000  ->  1.000
dqrmn024 remaindernear  5     0.200  ->  0.000
dqrmn025 remaindernear  5     0.200  ->  0.000

dqrmn030 remaindernear  1     2      ->  1
dqrmn031 remaindernear  1     4      ->  1
dqrmn032 remaindernear  1     8      ->  1

dqrmn033 remaindernear  1     16     ->  1
dqrmn034 remaindernear  1     32     ->  1
dqrmn035 remaindernear  1     64     ->  1
dqrmn040 remaindernear  1    -2      ->  1
dqrmn041 remaindernear  1    -4      ->  1
dqrmn042 remaindernear  1    -8      ->  1
dqrmn043 remaindernear  1    -16     ->  1
dqrmn044 remaindernear  1    -32     ->  1
dqrmn045 remaindernear  1    -64     ->  1
dqrmn050 remaindernear -1     2      ->  -1
dqrmn051 remaindernear -1     4      ->  -1
dqrmn052 remaindernear -1     8      ->  -1
dqrmn053 remaindernear -1     16     ->  -1
dqrmn054 remaindernear -1     32     ->  -1
dqrmn055 remaindernear -1     64     ->  -1
dqrmn060 remaindernear -1    -2      ->  -1
dqrmn061 remaindernear -1    -4      ->  -1
dqrmn062 remaindernear -1    -8      ->  -1
dqrmn063 remaindernear -1    -16     ->  -1
dqrmn064 remaindernear -1    -32     ->  -1
dqrmn065 remaindernear -1    -64     ->  -1

dqrmn066 remaindernear          9.9   1  -> -0.1
dqrmn067 remaindernear         99.7   1  -> -0.3
dqrmn068 remaindernear  999999999     1  -> 0
dqrmn069 remaindernear  999999999.4   1  -> 0.4
dqrmn070 remaindernear  999999999.5   1  -> -0.5
dqrmn071 remaindernear  999999999.9   1  -> -0.1
dqrmn072 remaindernear  999999999.999 1  -> -0.001
dqrmn073 remaindernear  999999.999999 1  -> -0.000001
dqrmn074 remaindernear  9             1  -> 0
dqrmn075 remaindernear  9999999999999999 1  -> 0
dqrmn076 remaindernear  9999999999999999 2  -> -1
dqrmn077 remaindernear  9999999999999999 3  -> 0
dqrmn078 remaindernear  9999999999999999 4  -> -1

dqrmn080 remaindernear  0.            1  -> 0
dqrmn081 remaindernear  .0            1  -> 0.0
dqrmn082 remaindernear  0.00          1  -> 0.00
dqrmn083 remaindernear  0.00E+9       1  -> 0
dqrmn084 remaindernear  0.00E+3       1  -> 0
dqrmn085 remaindernear  0.00E+2       1  -> 0
dqrmn086 remaindernear  0.00E+1       1  -> 0.0
dqrmn087 remaindernear  0.00E+0       1  -> 0.00
dqrmn088 remaindernear  0.00E-0       1  -> 0.00
dqrmn089 remaindernear  0.00E-1       1  -> 0.000
dqrmn090 remaindernear  0.00E-2       1  -> 0.0000
dqrmn091 remaindernear  0.00E-3       1  -> 0.00000
dqrmn092 remaindernear  0.00E-4       1  -> 0.000000
dqrmn093 remaindernear  0.00E-5       1  -> 0E-7
dqrmn094 remaindernear  0.00E-6       1  -> 0E-8
dqrmn095 remaindernear  0.0000E-50    1  -> 0E-54

-- Various flavours of remaindernear by 0
dqrmn101 remaindernear  0       0   -> NaN Division_undefined
dqrmn102 remaindernear  0      -0   -> NaN Division_undefined
dqrmn103 remaindernear -0       0   -> NaN Division_undefined
dqrmn104 remaindernear -0      -0   -> NaN Division_undefined
dqrmn105 remaindernear  0.0E5   0   -> NaN Division_undefined
dqrmn106 remaindernear  0.000   0   -> NaN Division_undefined
-- [Some think this next group should be Division_by_zero exception, but
-- IEEE 854 is explicit that it is Invalid operation .. for
-- remainder-near, anyway]
dqrmn107 remaindernear  0.0001  0   -> NaN Invalid_operation
dqrmn108 remaindernear  0.01    0   -> NaN Invalid_operation
dqrmn109 remaindernear  0.1     0   -> NaN Invalid_operation
dqrmn110 remaindernear  1       0   -> NaN Invalid_operation
dqrmn111 remaindernear  1       0.0 -> NaN Invalid_operation
dqrmn112 remaindernear 10       0.0 -> NaN Invalid_operation
dqrmn113 remaindernear 1E+100   0.0 -> NaN Invalid_operation
dqrmn114 remaindernear 1E+380   0   -> NaN Invalid_operation
dqrmn115 remaindernear  0.0001 -0   -> NaN Invalid_operation
dqrmn116 remaindernear  0.01   -0   -> NaN Invalid_operation
dqrmn119 remaindernear  0.1    -0   -> NaN Invalid_operation
dqrmn120 remaindernear  1      -0   -> NaN Invalid_operation
dqrmn121 remaindernear  1      -0.0 -> NaN Invalid_operation
dqrmn122 remaindernear 10      -0.0 -> NaN Invalid_operation
dqrmn123 remaindernear 1E+100  -0.0 -> NaN Invalid_operation
dqrmn124 remaindernear 1E+384  -0   -> NaN Invalid_operation
-- and zeros on left
dqrmn130 remaindernear  0      1   ->  0
dqrmn131 remaindernear  0     -1   ->  0
dqrmn132 remaindernear  0.0    1   ->  0.0
dqrmn133 remaindernear  0.0   -1   ->  0.0
dqrmn134 remaindernear -0      1   -> -0
dqrmn135 remaindernear -0     -1   -> -0
dqrmn136 remaindernear -0.0    1   -> -0.0
dqrmn137 remaindernear -0.0   -1   -> -0.0

-- 0.5ers
dqrmn143 remaindernear   0.5  2     ->  0.5
dqrmn144 remaindernear   0.5  2.1   ->  0.5
dqrmn145 remaindernear   0.5  2.01  ->  0.50
dqrmn146 remaindernear   0.5  2.001 ->  0.500
dqrmn147 remaindernear   0.50 2     ->  0.50
dqrmn148 remaindernear   0.50 2.01  ->  0.50
dqrmn149 remaindernear   0.50 2.001 ->  0.500

-- steadies
dqrmn150 remaindernear  1  1   -> 0
dqrmn151 remaindernear  1  2   -> 1
dqrmn152 remaindernear  1  3   -> 1
dqrmn153 remaindernear  1  4   -> 1
dqrmn154 remaindernear  1  5   -> 1
dqrmn155 remaindernear  1  6   -> 1
dqrmn156 remaindernear  1  7   -> 1
dqrmn157 remaindernear  1  8   -> 1
dqrmn158 remaindernear  1  9   -> 1
dqrmn159 remaindernear  1  10  -> 1
dqrmn160 remaindernear  1  1   -> 0
dqrmn161 remaindernear  2  1   -> 0
dqrmn162 remaindernear  3  1   -> 0
dqrmn163 remaindernear  4  1   -> 0
dqrmn164 remaindernear  5  1   -> 0
dqrmn165 remaindernear  6  1   -> 0
dqrmn166 remaindernear  7  1   -> 0
dqrmn167 remaindernear  8  1   -> 0
dqrmn168 remaindernear  9  1   -> 0
dqrmn169 remaindernear  10 1   -> 0

-- some differences from remainder
dqrmn171 remaindernear   0.4  1.020 ->  0.400
dqrmn172 remaindernear   0.50 1.020 ->  0.500
dqrmn173 remaindernear   0.51 1.020 ->  0.510
dqrmn174 remaindernear   0.52 1.020 -> -0.500
dqrmn175 remaindernear   0.6  1.020 -> -0.420

-- More flavours of remaindernear by 0
dqrmn201 remaindernear  0      0   -> NaN Division_undefined
dqrmn202 remaindernear  0.0E5  0   -> NaN Division_undefined
dqrmn203 remaindernear  0.000  0   -> NaN Division_undefined
dqrmn204 remaindernear  0.0001 0   -> NaN Invalid_operation
dqrmn205 remaindernear  0.01   0   -> NaN Invalid_operation
dqrmn206 remaindernear  0.1    0   -> NaN Invalid_operation
dqrmn207 remaindernear  1      0   -> NaN Invalid_operation
dqrmn208 remaindernear  1      0.0 -> NaN Invalid_operation
dqrmn209 remaindernear 10      0.0 -> NaN Invalid_operation
dqrmn210 remaindernear 1E+100  0.0 -> NaN Invalid_operation
dqrmn211 remaindernear 1E+380  0   -> NaN Invalid_operation

-- tests from the extended specification
dqrmn221 remaindernear 2.1     3   -> -0.9
dqrmn222 remaindernear  10     6   -> -2
dqrmn223 remaindernear  10     3   ->  1
dqrmn224 remaindernear -10     3   -> -1
dqrmn225 remaindernear  10.2   1   -> 0.2
dqrmn226 remaindernear  10     0.3 -> 0.1
dqrmn227 remaindernear   3.6   1.3 -> -0.3

-- some differences from remainder
dqrmn231 remaindernear  -0.4  1.020 -> -0.400
dqrmn232 remaindernear  -0.50 1.020 -> -0.500
dqrmn233 remaindernear  -0.51 1.020 -> -0.510
dqrmn234 remaindernear  -0.52 1.020 ->  0.500
dqrmn235 remaindernear  -0.6  1.020 ->  0.420

-- high Xs
dqrmn240 remaindernear  1E+2  1.00  ->  0.00

-- dqrmn3xx are from DiagBigDecimal
dqrmn301 remaindernear   1    3     ->  1
dqrmn302 remaindernear   5    5     ->  0
dqrmn303 remaindernear   13   10    ->  3
dqrmn304 remaindernear   13   50    ->  13
dqrmn305 remaindernear   13   100   ->  13
dqrmn306 remaindernear   13   1000  ->  13
dqrmn307 remaindernear   .13    1   ->  0.13
dqrmn308 remaindernear   0.133  1   ->  0.133
dqrmn309 remaindernear   0.1033 1   ->  0.1033
dqrmn310 remaindernear   1.033  1   ->  0.033
dqrmn311 remaindernear   10.33  1   ->  0.33
dqrmn312 remaindernear   10.33 10   ->  0.33
dqrmn313 remaindernear   103.3  1   ->  0.3
dqrmn314 remaindernear   133   10   ->  3
dqrmn315 remaindernear   1033  10   ->  3
dqrmn316 remaindernear   1033  50   -> -17
dqrmn317 remaindernear   101.0  3   -> -1.0
dqrmn318 remaindernear   102.0  3   ->  0.0
dqrmn319 remaindernear   103.0  3   ->  1.0
dqrmn320 remaindernear   2.40   1   ->  0.40
dqrmn321 remaindernear   2.400  1   ->  0.400
dqrmn322 remaindernear   2.4    1   ->  0.4
dqrmn323 remaindernear   2.4    2   ->  0.4
dqrmn324 remaindernear   2.400  2   ->  0.400
dqrmn325 remaindernear   1   0.3    ->  0.1
dqrmn326 remaindernear   1   0.30   ->  0.10
dqrmn327 remaindernear   1   0.300  ->  0.100
dqrmn328 remaindernear   1   0.3000 ->  0.1000
dqrmn329 remaindernear   1.0    0.3 ->  0.1
dqrmn330 remaindernear   1.00   0.3 ->  0.10
dqrmn331 remaindernear   1.000  0.3 ->  0.100
dqrmn332 remaindernear   1.0000 0.3 ->  0.1000
dqrmn333 remaindernear   0.5  2     ->  0.5
dqrmn334 remaindernear   0.5  2.1   ->  0.5
dqrmn335 remaindernear   0.5  2.01  ->  0.50
dqrmn336 remaindernear   0.5  2.001 ->  0.500
dqrmn337 remaindernear   0.50 2     ->  0.50
dqrmn338 remaindernear   0.50 2.01  ->  0.50
dqrmn339 remaindernear   0.50 2.001 ->  0.500

dqrmn340 remaindernear   0.5   0.5000001    ->  -1E-7
dqrmn341 remaindernear   0.5   0.50000001    ->  -1E-8
dqrmn342 remaindernear   0.5   0.500000001    ->  -1E-9
dqrmn343 remaindernear   0.5   0.5000000001    ->  -1E-10
dqrmn344 remaindernear   0.5   0.50000000001    ->  -1E-11
dqrmn345 remaindernear   0.5   0.4999999    ->  1E-7
dqrmn346 remaindernear   0.5   0.49999999    ->  1E-8
dqrmn347 remaindernear   0.5   0.499999999    ->  1E-9
dqrmn348 remaindernear   0.5   0.4999999999    ->  1E-10
dqrmn349 remaindernear   0.5   0.49999999999    ->  1E-11
dqrmn350 remaindernear   0.5   0.499999999999    ->  1E-12

dqrmn351 remaindernear   0.03  7  ->  0.03
dqrmn352 remaindernear   5   2    ->  1
dqrmn353 remaindernear   4.1   2    ->  0.1
dqrmn354 remaindernear   4.01   2    ->  0.01
dqrmn355 remaindernear   4.001   2    ->  0.001
dqrmn356 remaindernear   4.0001   2    ->  0.0001
dqrmn357 remaindernear   4.00001   2    ->  0.00001
dqrmn358 remaindernear   4.000001   2    ->  0.000001
dqrmn359 remaindernear   4.0000001   2    ->  1E-7

dqrmn360 remaindernear   1.2   0.7345 -> -0.2690
dqrmn361 remaindernear   0.8   12     ->  0.8
dqrmn362 remaindernear   0.8   0.2    ->  0.0
dqrmn363 remaindernear   0.8   0.3    -> -0.1
dqrmn364 remaindernear   0.800   12   ->  0.800
dqrmn365 remaindernear   0.800   1.7  ->  0.800
dqrmn366 remaindernear   2.400   2    ->  0.400

-- round to even
dqrmn371 remaindernear   121     2    ->  1
dqrmn372 remaindernear   122     2    ->  0
dqrmn373 remaindernear   123     2    -> -1
dqrmn374 remaindernear   124     2    ->  0
dqrmn375 remaindernear   125     2    ->  1
dqrmn376 remaindernear   126     2    ->  0
dqrmn377 remaindernear   127     2    -> -1

dqrmn381 remaindernear 12345  1         ->  0
dqrmn382 remaindernear 12345  1.0001    -> -0.2344
dqrmn383 remaindernear 12345  1.001     -> -0.333
dqrmn384 remaindernear 12345  1.01      -> -0.23
dqrmn385 remaindernear 12345  1.1       -> -0.3
dqrmn386 remaindernear 12355  4         -> -1
dqrmn387 remaindernear 12345  4         ->  1
dqrmn388 remaindernear 12355  4.0001    -> -1.3089
dqrmn389 remaindernear 12345  4.0001    ->  0.6914
dqrmn390 remaindernear 12345  4.9       ->  1.9
dqrmn391 remaindernear 12345  4.99      -> -0.26
dqrmn392 remaindernear 12345  4.999     ->  2.469
dqrmn393 remaindernear 12345  4.9999    ->  0.2469
dqrmn394 remaindernear 12345  5         ->  0
dqrmn395 remaindernear 12345  5.0001    -> -0.2469
dqrmn396 remaindernear 12345  5.001     -> -2.469
dqrmn397 remaindernear 12345  5.01      ->  0.36
dqrmn398 remaindernear 12345  5.1       -> -2.1

-- the nasty division-by-1 cases
dqrmn401 remaindernear   0.4         1   ->  0.4
dqrmn402 remaindernear   0.45        1   ->  0.45
dqrmn403 remaindernear   0.455       1   ->  0.455
dqrmn404 remaindernear   0.4555      1   ->  0.4555
dqrmn405 remaindernear   0.45555     1   ->  0.45555
dqrmn406 remaindernear   0.455555    1   ->  0.455555
dqrmn407 remaindernear   0.4555555   1   ->  0.4555555
dqrmn408 remaindernear   0.45555555  1   ->  0.45555555
dqrmn409 remaindernear   0.455555555 1   ->  0.455555555
-- with spill... [412 exercises sticktab loop]
dqrmn411 remaindernear   0.5         1   ->  0.5
dqrmn412 remaindernear   0.55        1   -> -0.45
dqrmn413 remaindernear   0.555       1   -> -0.445
dqrmn414 remaindernear   0.5555      1   -> -0.4445
dqrmn415 remaindernear   0.55555     1   -> -0.44445
dqrmn416 remaindernear   0.555555    1   -> -0.444445
dqrmn417 remaindernear   0.5555555   1   -> -0.4444445
dqrmn418 remaindernear   0.55555555  1   -> -0.44444445
dqrmn419 remaindernear   0.555555555 1   -> -0.444444445

-- folddowns
dqrmn421 remaindernear   1E+6144        1  ->   NaN Division_impossible
dqrmn422 remaindernear   1E+6144  1E+6143  ->   0E+6111 Clamped
dqrmn423 remaindernear   1E+6144  2E+6143  ->   0E+6111 Clamped
dqrmn424 remaindernear   1E+6144  3E+6143  ->   1.00000000000000000000000000000000E+6143 Clamped
dqrmn425 remaindernear   1E+6144  4E+6143  ->   2.00000000000000000000000000000000E+6143 Clamped
dqrmn426 remaindernear   1E+6144  5E+6143  ->   0E+6111 Clamped
dqrmn427 remaindernear   1E+6144  6E+6143  ->  -2.00000000000000000000000000000000E+6143 Clamped
dqrmn428 remaindernear   1E+6144  7E+6143  ->   3.00000000000000000000000000000000E+6143 Clamped
dqrmn429 remaindernear   1E+6144  8E+6143  ->   2.00000000000000000000000000000000E+6143 Clamped
dqrmn430 remaindernear   1E+6144  9E+6143  ->   1.00000000000000000000000000000000E+6143 Clamped
-- tinies
dqrmn431 remaindernear   1E-6175  1E-6176  ->   0E-6176
dqrmn432 remaindernear   1E-6175  2E-6176  ->   0E-6176
dqrmn433 remaindernear   1E-6175  3E-6176  ->   1E-6176 Subnormal
dqrmn434 remaindernear   1E-6175  4E-6176  ->   2E-6176 Subnormal
dqrmn435 remaindernear   1E-6175  5E-6176  ->   0E-6176
dqrmn436 remaindernear   1E-6175  6E-6176  ->  -2E-6176 Subnormal
dqrmn437 remaindernear   1E-6175  7E-6176  ->   3E-6176 Subnormal
dqrmn438 remaindernear   1E-6175  8E-6176  ->   2E-6176 Subnormal
dqrmn439 remaindernear   1E-6175  9E-6176  ->   1E-6176 Subnormal
dqrmn440 remaindernear   1E-6175 10E-6176  ->   0E-6176
dqrmn441 remaindernear   1E-6175 11E-6176  ->  -1E-6176 Subnormal
dqrmn442 remaindernear 100E-6175 11E-6176  ->  -1E-6176 Subnormal
dqrmn443 remaindernear 100E-6175 20E-6176  ->   0E-6176
dqrmn444 remaindernear 100E-6175 21E-6176  ->  -8E-6176 Subnormal
dqrmn445 remaindernear 100E-6175 30E-6176  -> 1.0E-6175 Subnormal

-- zero signs
dqrmn650 remaindernear  1  1 ->  0
dqrmn651 remaindernear -1  1 -> -0
dqrmn652 remaindernear  1 -1 ->  0
dqrmn653 remaindernear -1 -1 -> -0
dqrmn654 remaindernear  0  1 ->  0
dqrmn655 remaindernear -0  1 -> -0
dqrmn656 remaindernear  0 -1 ->  0
dqrmn657 remaindernear -0 -1 -> -0
dqrmn658 remaindernear  0.00  1  ->  0.00
dqrmn659 remaindernear -0.00  1  -> -0.00

-- Specials
dqrmn680 remaindernear  Inf  -Inf   ->  NaN Invalid_operation
dqrmn681 remaindernear  Inf  -1000  ->  NaN Invalid_operation
dqrmn682 remaindernear  Inf  -1     ->  NaN Invalid_operation
dqrmn683 remaindernear  Inf   0     ->  NaN Invalid_operation
dqrmn684 remaindernear  Inf  -0     ->  NaN Invalid_operation
dqrmn685 remaindernear  Inf   1     ->  NaN Invalid_operation
dqrmn686 remaindernear  Inf   1000  ->  NaN Invalid_operation
dqrmn687 remaindernear  Inf   Inf   ->  NaN Invalid_operation
dqrmn688 remaindernear -1000  Inf   -> -1000
dqrmn689 remaindernear -Inf   Inf   ->  NaN Invalid_operation
dqrmn691 remaindernear -1     Inf   -> -1
dqrmn692 remaindernear  0     Inf   ->  0
dqrmn693 remaindernear -0     Inf   -> -0
dqrmn694 remaindernear  1     Inf   ->  1
dqrmn695 remaindernear  1000  Inf   ->  1000
dqrmn696 remaindernear  Inf   Inf   ->  NaN Invalid_operation

dqrmn700 remaindernear -Inf  -Inf   ->  NaN Invalid_operation
dqrmn701 remaindernear -Inf  -1000  ->  NaN Invalid_operation
dqrmn702 remaindernear -Inf  -1     ->  NaN Invalid_operation
dqrmn703 remaindernear -Inf  -0     ->  NaN Invalid_operation
dqrmn704 remaindernear -Inf   0     ->  NaN Invalid_operation
dqrmn705 remaindernear -Inf   1     ->  NaN Invalid_operation
dqrmn706 remaindernear -Inf   1000  ->  NaN Invalid_operation
dqrmn707 remaindernear -Inf   Inf   ->  NaN Invalid_operation
dqrmn708 remaindernear -Inf  -Inf   ->  NaN Invalid_operation
dqrmn709 remaindernear -1000  Inf   -> -1000
dqrmn710 remaindernear -1    -Inf   -> -1
dqrmn711 remaindernear -0    -Inf   -> -0
dqrmn712 remaindernear  0    -Inf   ->  0
dqrmn713 remaindernear  1    -Inf   ->  1
dqrmn714 remaindernear  1000 -Inf   ->  1000
dqrmn715 remaindernear  Inf  -Inf   ->  NaN Invalid_operation

dqrmn721 remaindernear  NaN -Inf    ->  NaN
dqrmn722 remaindernear  NaN -1000   ->  NaN
dqrmn723 remaindernear  NaN -1      ->  NaN
dqrmn724 remaindernear  NaN -0      ->  NaN
dqrmn725 remaindernear -NaN  0      -> -NaN
dqrmn726 remaindernear  NaN  1      ->  NaN
dqrmn727 remaindernear  NaN  1000   ->  NaN
dqrmn728 remaindernear  NaN  Inf    ->  NaN
dqrmn729 remaindernear  NaN -NaN    ->  NaN
dqrmn730 remaindernear -Inf  NaN    ->  NaN
dqrmn731 remaindernear -1000 NaN    ->  NaN
dqrmn732 remaindernear -1    NaN    ->  NaN
dqrmn733 remaindernear -0   -NaN    -> -NaN
dqrmn734 remaindernear  0    NaN    ->  NaN
dqrmn735 remaindernear  1   -NaN    -> -NaN
dqrmn736 remaindernear  1000 NaN    ->  NaN
dqrmn737 remaindernear  Inf  NaN    ->  NaN

dqrmn741 remaindernear  sNaN -Inf   ->  NaN  Invalid_operation
dqrmn742 remaindernear  sNaN -1000  ->  NaN  Invalid_operation
dqrmn743 remaindernear -sNaN -1     -> -NaN  Invalid_operation
dqrmn744 remaindernear  sNaN -0     ->  NaN  Invalid_operation
dqrmn745 remaindernear  sNaN  0     ->  NaN  Invalid_operation
dqrmn746 remaindernear  sNaN  1     ->  NaN  Invalid_operation
dqrmn747 remaindernear  sNaN  1000  ->  NaN  Invalid_operation
dqrmn749 remaindernear  sNaN  NaN   ->  NaN  Invalid_operation
dqrmn750 remaindernear  sNaN sNaN   ->  NaN  Invalid_operation
dqrmn751 remaindernear  NaN  sNaN   ->  NaN  Invalid_operation
dqrmn752 remaindernear -Inf  sNaN   ->  NaN  Invalid_operation
dqrmn753 remaindernear -1000 sNaN   ->  NaN  Invalid_operation
dqrmn754 remaindernear -1    sNaN   ->  NaN  Invalid_operation
dqrmn755 remaindernear -0    sNaN   ->  NaN  Invalid_operation
dqrmn756 remaindernear  0    sNaN   ->  NaN  Invalid_operation
dqrmn757 remaindernear  1    sNaN   ->  NaN  Invalid_operation
dqrmn758 remaindernear  1000 sNaN   ->  NaN  Invalid_operation
dqrmn759 remaindernear  Inf -sNaN   -> -NaN  Invalid_operation

-- propaging NaNs
dqrmn760 remaindernear  NaN1   NaN7   ->  NaN1
dqrmn761 remaindernear sNaN2   NaN8   ->  NaN2 Invalid_operation
dqrmn762 remaindernear  NaN3  sNaN9   ->  NaN9 Invalid_operation
dqrmn763 remaindernear sNaN4  sNaN10  ->  NaN4 Invalid_operation
dqrmn764 remaindernear    15   NaN11  ->  NaN11
dqrmn765 remaindernear  NaN6   NaN12  ->  NaN6
dqrmn766 remaindernear  Inf    NaN13  ->  NaN13
dqrmn767 remaindernear  NaN14  -Inf   ->  NaN14
dqrmn768 remaindernear    0    NaN15  ->  NaN15
dqrmn769 remaindernear  NaN16   -0    ->  NaN16

-- edge cases of impossible
dqrmn770  remaindernear  1234500000000000000000067890123456  10    -> -4
dqrmn771  remaindernear  1234500000000000000000067890123456   1    ->  0
dqrmn772  remaindernear  1234500000000000000000067890123456   0.1  ->  NaN Division_impossible
dqrmn773  remaindernear  1234500000000000000000067890123456   0.01 ->  NaN Division_impossible

-- long operand checks
dqrmn801 remaindernear 12345678000 100 -> 0
dqrmn802 remaindernear 1 12345678000   -> 1
dqrmn803 remaindernear 1234567800  10  -> 0
dqrmn804 remaindernear 1 1234567800    -> 1
dqrmn805 remaindernear 1234567890  10  -> 0
dqrmn806 remaindernear 1 1234567890    -> 1
dqrmn807 remaindernear 1234567891  10  -> 1
dqrmn808 remaindernear 1 1234567891    -> 1
dqrmn809 remaindernear 12345678901 100 -> 1
dqrmn810 remaindernear 1 12345678901   -> 1
dqrmn811 remaindernear 1234567896  10  -> -4
dqrmn812 remaindernear 1 1234567896    -> 1

dqrmn821 remaindernear 12345678000 100 -> 0
dqrmn822 remaindernear 1 12345678000   -> 1
dqrmn823 remaindernear 1234567800  10  -> 0
dqrmn824 remaindernear 1 1234567800    -> 1
dqrmn825 remaindernear 1234567890  10  -> 0
dqrmn826 remaindernear 1 1234567890    -> 1
dqrmn827 remaindernear 1234567891  10  -> 1
dqrmn828 remaindernear 1 1234567891    -> 1
dqrmn829 remaindernear 12345678901 100 -> 1
dqrmn830 remaindernear 1 12345678901   -> 1
dqrmn831 remaindernear 1234567896  10  -> -4
dqrmn832 remaindernear 1 1234567896    -> 1

-- from divideint
dqrmn840 remaindernear  100000000.0   1  ->  0.0
dqrmn841 remaindernear  100000000.4   1  ->  0.4
dqrmn842 remaindernear  100000000.5   1  ->  0.5
dqrmn843 remaindernear  100000000.9   1  -> -0.1
dqrmn844 remaindernear  100000000.999 1  -> -0.001
dqrmn850 remaindernear  100000003     5  -> -2
dqrmn851 remaindernear  10000003      5  -> -2
dqrmn852 remaindernear  1000003       5  -> -2
dqrmn853 remaindernear  100003        5  -> -2
dqrmn854 remaindernear  10003         5  -> -2
dqrmn855 remaindernear  1003          5  -> -2
dqrmn856 remaindernear  103           5  -> -2
dqrmn857 remaindernear  13            5  -> -2
dqrmn858 remaindernear  1             5  ->  1

-- Vladimir's cases         1234567890123456
dqrmn860 remaindernear 123.0e1 1000000000000000  -> 1230
dqrmn861 remaindernear 1230    1000000000000000  -> 1230
dqrmn862 remaindernear 12.3e2  1000000000000000  -> 1230
dqrmn863 remaindernear 1.23e3  1000000000000000  -> 1230
dqrmn864 remaindernear 123e1   1000000000000000  -> 1230
dqrmn870 remaindernear 123e1    1000000000000000 -> 1230
dqrmn871 remaindernear 123e1     100000000000000 -> 1230
dqrmn872 remaindernear 123e1      10000000000000 -> 1230
dqrmn873 remaindernear 123e1       1000000000000 -> 1230
dqrmn874 remaindernear 123e1        100000000000 -> 1230
dqrmn875 remaindernear 123e1         10000000000 -> 1230
dqrmn876 remaindernear 123e1          1000000000 -> 1230
dqrmn877 remaindernear 123e1           100000000 -> 1230
dqrmn878 remaindernear 1230            100000000 -> 1230
dqrmn879 remaindernear 123e1            10000000 -> 1230
dqrmn880 remaindernear 123e1             1000000 -> 1230
dqrmn881 remaindernear 123e1              100000 -> 1230
dqrmn882 remaindernear 123e1               10000 -> 1230
dqrmn883 remaindernear 123e1                1000 ->  230
dqrmn884 remaindernear 123e1                 100 ->   30
dqrmn885 remaindernear 123e1                  10 ->    0
dqrmn886 remaindernear 123e1                   1 ->    0

dqrmn890 remaindernear 123e1    2000000000000000 -> 1230
dqrmn891 remaindernear 123e1     200000000000000 -> 1230
dqrmn892 remaindernear 123e1      20000000000000 -> 1230
dqrmn893 remaindernear 123e1       2000000000000 -> 1230
dqrmn894 remaindernear 123e1        200000000000 -> 1230
dqrmn895 remaindernear 123e1         20000000000 -> 1230
dqrmn896 remaindernear 123e1          2000000000 -> 1230
dqrmn897 remaindernear 123e1           200000000 -> 1230
dqrmn899 remaindernear 123e1            20000000 -> 1230
dqrmn900 remaindernear 123e1             2000000 -> 1230
dqrmn901 remaindernear 123e1              200000 -> 1230
dqrmn902 remaindernear 123e1               20000 -> 1230
dqrmn903 remaindernear 123e1                2000 -> -770
dqrmn904 remaindernear 123e1                 200 ->   30
dqrmn905 remaindernear 123e1                  20 ->  -10
dqrmn906 remaindernear 123e1                   2 ->    0

dqrmn910 remaindernear 123e1    5000000000000000 -> 1230
dqrmn911 remaindernear 123e1     500000000000000 -> 1230
dqrmn912 remaindernear 123e1      50000000000000 -> 1230
dqrmn913 remaindernear 123e1       5000000000000 -> 1230
dqrmn914 remaindernear 123e1        500000000000 -> 1230
dqrmn915 remaindernear 123e1         50000000000 -> 1230
dqrmn916 remaindernear 123e1          5000000000 -> 1230
dqrmn917 remaindernear 123e1           500000000 -> 1230
dqrmn919 remaindernear 123e1            50000000 -> 1230
dqrmn920 remaindernear 123e1             5000000 -> 1230
dqrmn921 remaindernear 123e1              500000 -> 1230
dqrmn922 remaindernear 123e1               50000 -> 1230
dqrmn923 remaindernear 123e1                5000 -> 1230
dqrmn924 remaindernear 123e1                 500 ->  230
dqrmn925 remaindernear 123e1                  50 ->  -20
dqrmn926 remaindernear 123e1                   5 ->    0

dqrmn930 remaindernear 123e1    9000000000000000 -> 1230
dqrmn931 remaindernear 123e1     900000000000000 -> 1230
dqrmn932 remaindernear 123e1      90000000000000 -> 1230
dqrmn933 remaindernear 123e1       9000000000000 -> 1230
dqrmn934 remaindernear 123e1        900000000000 -> 1230
dqrmn935 remaindernear 123e1         90000000000 -> 1230
dqrmn936 remaindernear 123e1          9000000000 -> 1230
dqrmn937 remaindernear 123e1           900000000 -> 1230
dqrmn939 remaindernear 123e1            90000000 -> 1230
dqrmn940 remaindernear 123e1             9000000 -> 1230
dqrmn941 remaindernear 123e1              900000 -> 1230
dqrmn942 remaindernear 123e1               90000 -> 1230
dqrmn943 remaindernear 123e1                9000 -> 1230
dqrmn944 remaindernear 123e1                 900 ->  330
dqrmn945 remaindernear 123e1                  90 ->  -30
dqrmn946 remaindernear 123e1                   9 ->   -3

dqrmn950 remaindernear 123e1   1000000000000000 -> 1230
dqrmn961 remaindernear 123e1   2999999999999999 -> 1230
dqrmn962 remaindernear 123e1   3999999999999999 -> 1230
dqrmn963 remaindernear 123e1   4999999999999999 -> 1230
dqrmn964 remaindernear 123e1   5999999999999999 -> 1230
dqrmn965 remaindernear 123e1   6999999999999999 -> 1230
dqrmn966 remaindernear 123e1   7999999999999999 -> 1230
dqrmn967 remaindernear 123e1   8999999999999999 -> 1230
dqrmn968 remaindernear 123e1   9999999999999999 -> 1230
dqrmn969 remaindernear 123e1   9876543210987654 -> 1230

dqrmn980 remaindernear 123e1 1000E299 -> 1.23E+3  -- 123E+1 internally

-- overflow and underflow tests [from divide]
dqrmn1051 remaindernear  1e+277  1e-311 ->  NaN Division_impossible
dqrmn1052 remaindernear  1e+277 -1e-311 ->  NaN Division_impossible
dqrmn1053 remaindernear -1e+277  1e-311 ->  NaN Division_impossible
dqrmn1054 remaindernear -1e+277 -1e-311 ->  NaN Division_impossible
dqrmn1055 remaindernear  1e-277  1e+311 ->  1E-277
dqrmn1056 remaindernear  1e-277 -1e+311 ->  1E-277
dqrmn1057 remaindernear -1e-277  1e+311 -> -1E-277
dqrmn1058 remaindernear -1e-277 -1e+311 -> -1E-277

-- Gyuris example
dqrmn1070 remainder 8.336804418094040989630006819881709E-6143 8.336804418094040989630006819889000E-6143 -> 8.336804418094040989630006819881709E-6143

-- destructive subtract
dqrmn1101  remaindernear  1234567890123456789012345678901234  1.000000000000000000000000000000001  ->  -0.234567890123456789012345678901233
dqrmn1102  remaindernear  1234567890123456789012345678901234   1.00000000000000000000000000000001  ->   -0.34567890123456789012345678901222
dqrmn1103  remaindernear  1234567890123456789012345678901234    1.0000000000000000000000000000001  ->    -0.4567890123456789012345678901111
dqrmn1104  remaindernear  1234567890123456789012345678901255  4.000000000000000000000000000000001  ->  -1.308641972530864197253086419725314
dqrmn1105  remaindernear  1234567890123456789012345678901234  4.000000000000000000000000000000001  ->   1.691358027469135802746913580274692
dqrmn1106  remaindernear  1234567890123456789012345678901234    4.9999999999999999999999999999999  ->    -1.3086421975308642197530864219748
dqrmn1107  remaindernear  1234567890123456789012345678901234   4.99999999999999999999999999999999  ->    1.46913578024691357802469135780247
dqrmn1108  remaindernear  1234567890123456789012345678901234  4.999999999999999999999999999999999  ->  -0.753086421975308642197530864219753
dqrmn1109  remaindernear  1234567890123456789012345678901234  5.000000000000000000000000000000001  ->  -1.246913578024691357802469135780247
dqrmn1110  remaindernear  1234567890123456789012345678901234   5.00000000000000000000000000000001  ->    1.53086421975308642197530864219754
dqrmn1111  remaindernear  1234567890123456789012345678901234    5.0000000000000000000000000000001  ->    -0.6913578024691357802469135780242

-- Null tests
dqrmn1000 remaindernear 10  # -> NaN Invalid_operation
dqrmn1001 remaindernear  # 10 -> NaN Invalid_operation