numerics tests

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

numerics tests

Paolo Bonzini-2
Enabling them found a bug in Fractions.  Which shows that this patch
series is good! :-)

Paolo


_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk
Reply | Threaded
Open this post in threaded view
|

Re: numerics tests

Paolo Bonzini-2
Paolo Bonzini wrote:
> Enabling them found a bug in Fractions.  Which shows that this patch
> series is good! :-)

ENOPATCH

Paolo

2007-05-22  Paolo Bonzini  <[hidden email]>

        * kernel/Fraction.st: Fix multiplication/division by zero.
        * numerics/Basic.st: Fix rounding.

        * numerics/NumericsAdds.st: Make all tests pass.
        * numerics/NumericsTests.st: Update usage of SUnit logging API.

--- orig/kernel/Fraction.st
+++ mod/kernel/Fraction.st
@@ -92,6 +92,8 @@ numerator
     (aNumber generality = self generality)
  ifFalse: [^self retryMultiplicationCoercing: aNumber].
 
+    aNumber numerator = 0 ifTrue: [ ^aNumber ].
+    self numerator = 0 ifTrue: [ ^self ].
     num := numerator * aNumber numerator.
     den := denominator * aNumber denominator.
 
@@ -165,6 +167,8 @@ numerator
     (aNumber generality = self generality)
  ifFalse: [^self retryDivisionCoercing: aNumber].
 
+    aNumber numerator = 0 ifTrue: [ ^self zeroDivide ].
+    self numerator = 0 ifTrue: [ ^self ].
     num := numerator * aNumber denominator.
     den := denominator * aNumber numerator.
     gcd := (numerator gcd: aNumber numerator) *


--- orig/numerics/Basic.st
+++ mod/numerics/Basic.st
@@ -676,7 +676,7 @@ normalize: aNumber
  Initial code: 9/6/99 "
 
     exponent := (self class digits - (aNumber log: 10)) floor.
-    mantissa := (aNumber * (10 raisedToInteger: exponent)) truncated.
+    mantissa := (aNumber * (10 raisedToInteger: exponent)) rounded.
     ^self! !
 
 



--- orig/numerics/NumericsAdds.st
+++ mod/numerics/NumericsAdds.st
@@ -35,11 +35,11 @@ random
 !Smalltalk.Number class methodsFor: 'numerics'!
 
 random
-    "Answers a random number between 0 and the receiver
+    "Answers a random number between 0 and 1.
      (c) Copyrights Didier BESSET, 1999, all rights reserved.
      Initial code: 17/2/99 "
 
-    ^Dhb.DhbMitchellMooreGenerator new floatValue * self! !
+    ^Dhb.DhbMitchellMooreGenerator new floatValue! !
 
 !Smalltalk.Number methodsFor: 'numerics'!
 
@@ -205,7 +205,7 @@ positiveRectangle
 
 asVector
     ^(Dhb.DhbVector new: self size)
-        replaceElementsFrom: 1 to: self size withArray: self startingAt: 1
+        replaceFrom: 1 to: self size with: self startingAt: 1
 ! !
 
 !Dhb.DhbPolynomial methodsFor: 'numerics'!


--- orig/numerics/NumericsTests.st
+++ mod/numerics/NumericsTests.st
@@ -23,7 +23,7 @@ TestCase subclass:#DhbTestCase
 
 !DhbTestCase methodsFor: 'logging'!
 
-logPolicy
+defaultLogPolicyClass
     ^TestVerboseLog
 ! !
 


--- orig/packages.xml.in
+++ mod/packages.xml.in
@@ -239,7 +239,10 @@
 <package>
   <name>DhbNumericalMethods</name>
   <namespace>Dhb</namespace>
+
+  <tests>Dhb.DhbTestCase*</tests>
   <prereq>SUnit</prereq>
+
   <filein>Basic.st</filein>
   <filein>Statistics.st</filein>
   <filein>RNG.st</filein>


--- orig/tests/testsuite.at
+++ mod/tests/testsuite.at
@@ -139,6 +139,7 @@ AT_ANSI_TEST([ZeroDivideFactoryANSITest]
 
 AT_BANNER([Other packages.])
 AT_PACKAGE_TEST([Continuations])
+AT_PACKAGE_TEST([DhbNumericalMethods])
 AT_OPTIONAL_PACKAGE_TEST([GDBM])
 AT_PACKAGE_TEST([MD5])
 AT_OPTIONAL_PACKAGE_TEST([ZLib])




_______________________________________________
help-smalltalk mailing list
[hidden email]
http://lists.gnu.org/mailman/listinfo/help-smalltalk