RegressionTests__FractionTest.st
changeset 1824 8c9ff08eee5d
parent 1447 2351db93aa5b
child 2266 43ebfa6688a1
equal deleted inserted replaced
1823:1d8dc3b46dc9 1824:8c9ff08eee5d
       
     1 "{ Encoding: utf8 }"
       
     2 
     1 "{ Package: 'stx:goodies/regression' }"
     3 "{ Package: 'stx:goodies/regression' }"
     2 
     4 
     3 "{ NameSpace: RegressionTests }"
     5 "{ NameSpace: RegressionTests }"
     4 
     6 
     5 TestCase subclass:#FractionTest
     7 TestCase subclass:#FractionTest
    33 	self assert: (1/3) degreeSin printString =  '0.005817731354993834'
    35 	self assert: (1/3) degreeSin printString =  '0.005817731354993834'
    34     ]
    36     ]
    35 !
    37 !
    36 
    38 
    37 testFractionPrinting
    39 testFractionPrinting
    38 	self assert: (353/359) printString = '(353/359)'.
    40         self assert: (353 / 359) printString = '(353/359)'.
    39 
    41 
    40 	self assert: (-2/3) printString = '(-2/3)'.
    42         self assert: (-2 / 3) printString = '(-2/3)'.
    41 	self assert: (-2/3) storeString = '(-2/3)'.
    43         self assert: (-2 / 3) storeString = '(-2/3)'.
    42 	self assert: (5/-7) printString = '(-5/7)'.
    44         self assert: (5 / -7) printString = '(-5/7)'.
    43 	self assert: (5/-7) storeString = '(-5/7)'.
    45         self assert: (5 / -7) storeString = '(-5/7)'.
    44 
    46 
    45 	Smalltalk isSmalltalkX ifFalse:[
    47         Smalltalk isSmalltalkX ifFalse:[
    46 	    self assert: ((2/3) printStringBase: 2) = '(10/11)'.
    48             self assert: ((2/3) printStringBase: 2) = '(10/11)'.
    47 	    self assert: ((2/3) storeStringBase: 2) = '(2r10/2r11)'.
    49             self assert: ((2/3) storeStringBase: 2) = '(2r10/2r11)'.
    48 	    self assert: ((5/7) printStringBase: 3) = '(12/21)'.
    50             self assert: ((5/7) printStringBase: 3) = '(12/21)'.
    49 	    self assert: ((5/7) storeStringBase: 3) = '(3r12/3r21)'.
    51             self assert: ((5/7) storeStringBase: 3) = '(3r12/3r21)'.
    50 	    self assert: ((11/13) printStringBase: 4) = '(23/31)'.
    52             self assert: ((11/13) printStringBase: 4) = '(23/31)'.
    51 	    self assert: ((11/13) storeStringBase: 4) = '(4r23/4r31)'.
    53             self assert: ((11/13) storeStringBase: 4) = '(4r23/4r31)'.
    52 	    self assert: ((17/19) printStringBase: 5) = '(32/34)'.
    54             self assert: ((17/19) printStringBase: 5) = '(32/34)'.
    53 	    self assert: ((17/19) storeStringBase: 5) = '(5r32/5r34)'.
    55             self assert: ((17/19) storeStringBase: 5) = '(5r32/5r34)'.
    54 	    self assert: ((23/29) printStringBase: 6) = '(35/45)'.
    56             self assert: ((23/29) printStringBase: 6) = '(35/45)'.
    55 	    self assert: ((23/29) storeStringBase: 6) = '(6r35/6r45)'.
    57             self assert: ((23/29) storeStringBase: 6) = '(6r35/6r45)'.
    56 	    self assert: ((31/37) printStringBase: 7) = '(43/52)'.
    58             self assert: ((31/37) printStringBase: 7) = '(43/52)'.
    57 	    self assert: ((31/37) storeStringBase: 7) = '(7r43/7r52)'.
    59             self assert: ((31/37) storeStringBase: 7) = '(7r43/7r52)'.
    58 	    self assert: ((41/43) printStringBase: 8) = '(51/53)'.
    60             self assert: ((41/43) printStringBase: 8) = '(51/53)'.
    59 	    self assert: ((41/43) storeStringBase: 8) = '(8r51/8r53)'.
    61             self assert: ((41/43) storeStringBase: 8) = '(8r51/8r53)'.
    60 	    self assert: ((47/53) printStringBase: 9) = '(52/58)'.
    62             self assert: ((47/53) printStringBase: 9) = '(52/58)'.
    61 	    self assert: ((47/53) storeStringBase: 9) = '(9r52/9r58)'.
    63             self assert: ((47/53) storeStringBase: 9) = '(9r52/9r58)'.
    62 	    self assert: ((59/61) printStringBase: 10) = '(59/61)'.
    64             self assert: ((59/61) printStringBase: 10) = '(59/61)'.
    63 	    self assert: ((59/61) storeStringBase: 10) = '(59/61)'.
    65             self assert: ((59/61) storeStringBase: 10) = '(59/61)'.
    64 	    self assert: ((67/71) printStringBase: 11) = '(61/65)'.
    66             self assert: ((67/71) printStringBase: 11) = '(61/65)'.
    65 	    self assert: ((67/71) storeStringBase: 11) = '(11r61/11r65)'.
    67             self assert: ((67/71) storeStringBase: 11) = '(11r61/11r65)'.
    66 	    self assert: ((73/79) printStringBase: 12) = '(61/67)'.
    68             self assert: ((73/79) printStringBase: 12) = '(61/67)'.
    67 	    self assert: ((73/79) storeStringBase: 12) = '(12r61/12r67)'.
    69             self assert: ((73/79) storeStringBase: 12) = '(12r61/12r67)'.
    68 	    self assert: ((83/89) printStringBase: 13) = '(65/6B)'.
    70             self assert: ((83/89) printStringBase: 13) = '(65/6B)'.
    69 	    self assert: ((83/89) storeStringBase: 13) = '(13r65/13r6B)'.
    71             self assert: ((83/89) storeStringBase: 13) = '(13r65/13r6B)'.
    70 	    self assert: ((97/101) printStringBase: 14) = '(6D/73)'.
    72             self assert: ((97/101) printStringBase: 14) = '(6D/73)'.
    71 	    self assert: ((97/101) storeStringBase: 14) = '(14r6D/14r73)'.
    73             self assert: ((97/101) storeStringBase: 14) = '(14r6D/14r73)'.
    72 	    self assert: ((103/107) printStringBase: 15) = '(6D/72)'.
    74             self assert: ((103/107) printStringBase: 15) = '(6D/72)'.
    73 	    self assert: ((103/107) storeStringBase: 15) = '(15r6D/15r72)'.
    75             self assert: ((103/107) storeStringBase: 15) = '(15r6D/15r72)'.
    74 	    self assert: ((109/113) printStringBase: 16) = '(6D/71)'.
    76             self assert: ((109/113) printStringBase: 16) = '(6D/71)'.
    75 	    self assert: ((109/113) storeStringBase: 16) = '(16r6D/16r71)'.
    77             self assert: ((109/113) storeStringBase: 16) = '(16r6D/16r71)'.
    76 	    self assert: ((127/131) printStringBase: 17) = '(78/7C)'.
    78             self assert: ((127/131) printStringBase: 17) = '(78/7C)'.
    77 	    self assert: ((127/131) storeStringBase: 17) = '(17r78/17r7C)'.
    79             self assert: ((127/131) storeStringBase: 17) = '(17r78/17r7C)'.
    78 	    self assert: ((137/139) printStringBase: 18) = '(7B/7D)'.
    80             self assert: ((137/139) printStringBase: 18) = '(7B/7D)'.
    79 	    self assert: ((137/139) storeStringBase: 18) = '(18r7B/18r7D)'.
    81             self assert: ((137/139) storeStringBase: 18) = '(18r7B/18r7D)'.
    80 	    self assert: ((149/151) printStringBase: 19) = '(7G/7I)'.
    82             self assert: ((149/151) printStringBase: 19) = '(7G/7I)'.
    81 	    self assert: ((149/151) storeStringBase: 19) = '(19r7G/19r7I)'.
    83             self assert: ((149/151) storeStringBase: 19) = '(19r7G/19r7I)'.
    82 	    self assert: ((157/163) printStringBase: 20) = '(7H/83)'.
    84             self assert: ((157/163) printStringBase: 20) = '(7H/83)'.
    83 	    self assert: ((157/163) storeStringBase: 20) = '(20r7H/20r83)'.
    85             self assert: ((157/163) storeStringBase: 20) = '(20r7H/20r83)'.
    84 	    self assert: ((167/173) printStringBase: 21) = '(7K/85)'.
    86             self assert: ((167/173) printStringBase: 21) = '(7K/85)'.
    85 	    self assert: ((167/173) storeStringBase: 21) = '(21r7K/21r85)'.
    87             self assert: ((167/173) storeStringBase: 21) = '(21r7K/21r85)'.
    86 	    self assert: ((179/181) printStringBase: 22) = '(83/85)'.
    88             self assert: ((179/181) printStringBase: 22) = '(83/85)'.
    87 	    self assert: ((179/181) storeStringBase: 22) = '(22r83/22r85)'.
    89             self assert: ((179/181) storeStringBase: 22) = '(22r83/22r85)'.
    88 	    self assert: ((191/193) printStringBase: 23) = '(87/89)'.
    90             self assert: ((191/193) printStringBase: 23) = '(87/89)'.
    89 	    self assert: ((191/193) storeStringBase: 23) = '(23r87/23r89)'.
    91             self assert: ((191/193) storeStringBase: 23) = '(23r87/23r89)'.
    90 	    self assert: ((197/199) printStringBase: 24) = '(85/87)'.
    92             self assert: ((197/199) printStringBase: 24) = '(85/87)'.
    91 	    self assert: ((197/199) storeStringBase: 24) = '(24r85/24r87)'.
    93             self assert: ((197/199) storeStringBase: 24) = '(24r85/24r87)'.
    92 	    self assert: ((211/223) printStringBase: 25) = '(8B/8N)'.
    94             self assert: ((211/223) printStringBase: 25) = '(8B/8N)'.
    93 	    self assert: ((211/223) storeStringBase: 25) = '(25r8B/25r8N)'.
    95             self assert: ((211/223) storeStringBase: 25) = '(25r8B/25r8N)'.
    94 	    self assert: ((227/229) printStringBase: 26) = '(8J/8L)'.
    96             self assert: ((227/229) printStringBase: 26) = '(8J/8L)'.
    95 	    self assert: ((227/229) storeStringBase: 26) = '(26r8J/26r8L)'.
    97             self assert: ((227/229) storeStringBase: 26) = '(26r8J/26r8L)'.
    96 	    self assert: ((233/239) printStringBase: 27) = '(8H/8N)'.
    98             self assert: ((233/239) printStringBase: 27) = '(8H/8N)'.
    97 	    self assert: ((233/239) storeStringBase: 27) = '(27r8H/27r8N)'.
    99             self assert: ((233/239) storeStringBase: 27) = '(27r8H/27r8N)'.
    98 	    self assert: ((241/251) printStringBase: 28) = '(8H/8R)'.
   100             self assert: ((241/251) printStringBase: 28) = '(8H/8R)'.
    99 	    self assert: ((241/251) storeStringBase: 28) = '(28r8H/28r8R)'.
   101             self assert: ((241/251) storeStringBase: 28) = '(28r8H/28r8R)'.
   100 	    self assert: ((257/263) printStringBase: 29) = '(8P/92)'.
   102             self assert: ((257/263) printStringBase: 29) = '(8P/92)'.
   101 	    self assert: ((257/263) storeStringBase: 29) = '(29r8P/29r92)'.
   103             self assert: ((257/263) storeStringBase: 29) = '(29r8P/29r92)'.
   102 	    self assert: ((269/271) printStringBase: 30) = '(8T/91)'.
   104             self assert: ((269/271) printStringBase: 30) = '(8T/91)'.
   103 	    self assert: ((269/271) storeStringBase: 30) = '(30r8T/30r91)'.
   105             self assert: ((269/271) storeStringBase: 30) = '(30r8T/30r91)'.
   104 	    self assert: ((277/281) printStringBase: 31) = '(8T/92)'.
   106             self assert: ((277/281) printStringBase: 31) = '(8T/92)'.
   105 	    self assert: ((277/281) storeStringBase: 31) = '(31r8T/31r92)'.
   107             self assert: ((277/281) storeStringBase: 31) = '(31r8T/31r92)'.
   106 	    self assert: ((283/293) printStringBase: 32) = '(8R/95)'.
   108             self assert: ((283/293) printStringBase: 32) = '(8R/95)'.
   107 	    self assert: ((283/293) storeStringBase: 32) = '(32r8R/32r95)'.
   109             self assert: ((283/293) storeStringBase: 32) = '(32r8R/32r95)'.
   108 	    self assert: ((307/311) printStringBase: 33) = '(9A/9E)'.
   110             self assert: ((307/311) printStringBase: 33) = '(9A/9E)'.
   109 	    self assert: ((307/311) storeStringBase: 33) = '(33r9A/33r9E)'.
   111             self assert: ((307/311) storeStringBase: 33) = '(33r9A/33r9E)'.
   110 	    self assert: ((313/317) printStringBase: 34) = '(97/9B)'.
   112             self assert: ((313/317) printStringBase: 34) = '(97/9B)'.
   111 	    self assert: ((313/317) storeStringBase: 34) = '(34r97/34r9B)'.
   113             self assert: ((313/317) storeStringBase: 34) = '(34r97/34r9B)'.
   112 	    self assert: ((331/337) printStringBase: 35) = '(9G/9M)'.
   114             self assert: ((331/337) printStringBase: 35) = '(9G/9M)'.
   113 	    self assert: ((331/337) storeStringBase: 35) = '(35r9G/35r9M)'.
   115             self assert: ((331/337) storeStringBase: 35) = '(35r9G/35r9M)'.
   114 	    self assert: ((347/349) printStringBase: 36) = '(9N/9P)'.
   116             self assert: ((347/349) printStringBase: 36) = '(9N/9P)'.
   115 	    self assert: ((347/349) storeStringBase: 36) = '(36r9N/36r9P)'.
   117             self assert: ((347/349) storeStringBase: 36) = '(36r9N/36r9P)'.
   116 
   118 
   117 	    self assert: ((-2/3) printStringBase: 2) = '(-10/11)'.
   119             self assert: ((-2/3) printStringBase: 2) = '(-10/11)'.
   118 	    self assert: ((-2/3) storeStringBase: 2) = '(-2r10/2r11)'.
   120             self assert: ((-2/3) storeStringBase: 2) = '(-2r10/2r11)'.
   119 	    self assert: ((5/-7) printStringBase: 3) = '(-12/21)'.
   121             self assert: ((5/-7) printStringBase: 3) = '(-12/21)'.
   120 	    self assert: ((5/-7) storeStringBase: 3) = '(-3r12/3r21)'.
   122             self assert: ((5/-7) storeStringBase: 3) = '(-3r12/3r21)'.
   121 	].
   123         ].
   122 !
   124 !
   123 
   125 
   124 testFractionReduction
   126 testFractionReduction
   125 	self assert: (100 factorial / 99 factorial) == 100.
   127 	self assert: (100 factorial / 99 factorial) == 100.
   126 !
   128 !