RegressionTests__NumberTest.st
changeset 610 efb13a71ed4c
parent 327 05cf0c282e59
child 670 4fd7b73a1c19
equal deleted inserted replaced
609:378ef1ea8892 610:efb13a71ed4c
    40 test_eqNumberBug
    40 test_eqNumberBug
    41     "reported 09-09-2004;
    41     "reported 09-09-2004;
    42      stc generated wrong code for some inlined = - compare (shame)."
    42      stc generated wrong code for some inlined = - compare (shame)."
    43 
    43 
    44     Class withoutUpdatingChangesDo:[
    44     Class withoutUpdatingChangesDo:[
    45         self class 
    45 	self class
    46             compile:
    46 	    compile:
    47 'testEQ
    47 'testEQ
    48     a = b ifTrue:[^ false].
    48     a = b ifTrue:[^ false].
    49     ^ true.
    49     ^ true.
    50 '
    50 '
    51             classified:'temporary'.
    51 	    classified:'temporary'.
    52     ].
    52     ].
    53 
    53 
    54     self assert: (
    54     self assert: (
    55        (self
    55        (self
    56            a:0;
    56 	   a:0;
    57            b:0) testEQ ) == false.
    57 	   b:0) testEQ ) == false.
    58 
    58 
    59     self assert: (
    59     self assert: (
    60        (self
    60        (self
    61            a:0;
    61 	   a:0;
    62            b:0.0) testEQ ) == false.
    62 	   b:0.0) testEQ ) == false.
    63 
    63 
    64     self assert: (
    64     self assert: (
    65        (self
    65        (self
    66            a:0.0;
    66 	   a:0.0;
    67            b:0) testEQ ) == false.
    67 	   b:0) testEQ ) == false.
    68 
    68 
    69     self assert: (
    69     self assert: (
    70        (self
    70        (self
    71            a:0.0;
    71 	   a:0.0;
    72            b:0.0) testEQ ) == false.
    72 	   b:0.0) testEQ ) == false.
    73 
    73 
    74     Class withoutUpdatingChangesDo:[
    74     Class withoutUpdatingChangesDo:[
    75         Compiler
    75 	Compiler stcCompileMethod:(self class compiledMethodAt:#testEQ).
    76             stcCompileMethod:(self class compiledMethodAt:#testEQ).
       
    77     ].
    76     ].
    78 
    77 
    79     self assert: (
    78     self assert: (
    80        (self
    79        (self
    81            a:0;
    80 	   a:0;
    82            b:0) testEQ ) == false.
    81 	   b:0) testEQ ) == false.
    83 
    82 
    84     self assert: (
    83     self assert: (
    85        (self
    84        (self
    86            a:0;
    85 	   a:0;
    87            b:0.0) testEQ ) == false.
    86 	   b:0.0) testEQ ) == false.
    88 
    87 
    89     self assert: (
    88     self assert: (
    90        (self
    89        (self
    91            a:0.0;
    90 	   a:0.0;
    92            b:0) testEQ ) == false.
    91 	   b:0) testEQ ) == false.
    93 
    92 
    94     self assert: (
    93     self assert: (
    95        (self
    94        (self
    96            a:0.0;
    95 	   a:0.0;
    97            b:0.0) testEQ ) == false.
    96 	   b:0.0) testEQ ) == false.
    98 
    97 
    99     Class withoutUpdatingChangesDo:[
    98     Class withoutUpdatingChangesDo:[
   100         self class removeSelector:#testEQ
    99 	self class removeSelector:#testEQ
   101     ].
   100     ].
   102 
   101 
   103     "
   102     "
   104      self new test_eqNumberBug
   103      self new test_eqNumberBug
   105     "
   104     "
   156 
   155 
   157     self assert: ('22.2' asNumber = 22.2).
   156     self assert: ('22.2' asNumber = 22.2).
   158     self assert: ('-22.2' asNumber = -22.2).
   157     self assert: ('-22.2' asNumber = -22.2).
   159 
   158 
   160     Smalltalk isSmalltalkX ifTrue:[
   159     Smalltalk isSmalltalkX ifTrue:[
   161         "/ st/x requires this:
   160 	"/ st/x requires this:
   162 
   161 
   163         self assert: ((Number readSmalltalkSyntaxFrom:'10r22.2') = 22.2).
   162 	self assert: ((Number readSmalltalkSyntaxFrom:'10r22.2') = 22.2).
   164         self assert: ((Number readSmalltalkSyntaxFrom:'10r22.2s5') = 22.2).
   163 	self assert: ((Number readSmalltalkSyntaxFrom:'10r22.2s5') = 22.2).
   165 
   164 
   166         self assert: ((Number readSmalltalkSyntaxFrom:'10r-22.2') = -22.2).
   165 	self assert: ((Number readSmalltalkSyntaxFrom:'10r-22.2') = -22.2).
   167         self assert: ((Number readSmalltalkSyntaxFrom:'10r-22.2s5') = -22.2).
   166 	self assert: ((Number readSmalltalkSyntaxFrom:'10r-22.2s5') = -22.2).
   168 
   167 
   169         self assert: 2r1e26     = (Number readSmalltalkSyntaxFrom: '2r1e26').
   168 	self assert: 2r1e26     = (Number readSmalltalkSyntaxFrom: '2r1e26').
   170     ] ifFalse:[
   169     ] ifFalse:[
   171         "/ squeak allows this:
   170 	"/ squeak allows this:
   172         self assert: 2r1e26     = (Number readFrom: '2r1e26').
   171 	self assert: 2r1e26     = (Number readFrom: '2r1e26').
   173 
   172 
   174         self assert: ('10r22.2' asNumber = 22.2).
   173 	self assert: ('10r22.2' asNumber = 22.2).
   175         self assert: ('10r22.2s5' asNumber = 22.2).
   174 	self assert: ('10r22.2s5' asNumber = 22.2).
   176 
   175 
   177         self assert: ('10r-22.2' asNumber = -22.2).
   176 	self assert: ('10r-22.2' asNumber = -22.2).
   178         self assert: ('10r-22.2s5' asNumber = -22.2).
   177 	self assert: ('10r-22.2s5' asNumber = -22.2).
   179     ].
   178     ].
   180 ! !
   179 ! !
   181 
   180 
   182 !NumberTest class methodsFor:'documentation'!
   181 !NumberTest class methodsFor:'documentation'!
   183 
   182