446 |
446 |
447 self test:[(20 factorial + 20 factorial) printString = '4865804016353280000']. |
447 self test:[(20 factorial + 20 factorial) printString = '4865804016353280000']. |
448 self test:[(20 factorial + 1) printString = '2432902008176640001']. |
448 self test:[(20 factorial + 1) printString = '2432902008176640001']. |
449 self test:[(20 factorial + 1000) printString = '2432902008176641000']. |
449 self test:[(20 factorial + 1000) printString = '2432902008176641000']. |
450 |
450 |
451 "Large - Large addition" |
451 "Large + Small addition" |
|
452 |
|
453 n1 := 16r3FFFFFFF. n2 := 1. |
|
454 self test:[(n1 + n2 ) hexPrintString = '40000000']. |
|
455 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '40000000']. |
|
456 n1 := 16r3FFFFFFFF. n2 := 1. |
|
457 self test:[(n1 + n2 ) hexPrintString = '400000000']. |
|
458 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '400000000']. |
|
459 n1 := 16r3FFFFFFFFF. n2 := 1. |
|
460 self test:[(n1 + n2 ) hexPrintString = '4000000000']. |
|
461 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '4000000000']. |
|
462 n1 := 16r3FFFFFFFFFF. n2 := 1. |
|
463 self test:[(n1 + n2 ) hexPrintString = '40000000000']. |
|
464 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '40000000000']. |
|
465 n1 := 16r3FFFFFFFFFFF. n2 := 1. |
|
466 self test:[(n1 + n2 ) hexPrintString = '400000000000']. |
|
467 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '400000000000']. |
|
468 n1 := 16r3FFFFFFFFFFFF. n2 := 1. |
|
469 self test:[(n1 + n2 ) hexPrintString = '4000000000000']. |
|
470 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '4000000000000']. |
|
471 n1 := 16r3FFFFFFFFFFFFF. n2 := 1. |
|
472 self test:[(n1 + n2 ) hexPrintString = '40000000000000']. |
|
473 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '40000000000000']. |
|
474 n1 := 16r3FFFFFFFFFFFFFF. n2 := 1. |
|
475 self test:[(n1 + n2 ) hexPrintString = '400000000000000']. |
|
476 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '400000000000000']. |
|
477 n1 := 16r3FFFFFFFFFFFFFFF. n2 := 1. |
|
478 self test:[(n1 + n2 ) hexPrintString = '4000000000000000']. |
|
479 self test:[(n1 perform:'+' asSymbol with:n2 ) hexPrintString = '4000000000000000']. |
|
480 |
|
481 "Large + Large addition" |
452 |
482 |
453 n1 := 16r100000000. n2 := 16r7FFFFFFF. |
483 n1 := 16r100000000. n2 := 16r7FFFFFFF. |
454 self test:[(n1 - n2 ) hexPrintString = '80000001']. |
484 self test:[(n1 - n2 ) hexPrintString = '80000001']. |
455 self test:[(16r100000000 - n2 ) hexPrintString = '80000001']. |
485 self test:[(16r100000000 - n2 ) hexPrintString = '80000001']. |
456 self test:[(n1 - 16r7FFFFFFF ) hexPrintString = '80000001']. |
486 self test:[(n1 - 16r7FFFFFFF ) hexPrintString = '80000001']. |