RegressionTests__NumberTest.st
changeset 2427 7d730212d1f0
parent 2424 da9ee5df3c43
child 2447 81b27fbbc2e9
--- a/RegressionTests__NumberTest.st	Tue Nov 26 04:29:03 2019 +0000
+++ b/RegressionTests__NumberTest.st	Wed Nov 27 11:16:27 2019 +0100
@@ -176,22 +176,26 @@
 testPrintf_FixedPoint
     "/ FixedPoint
     
-    self assert:( (PrintfScanf printf:'%.4f' argument:FixedPoint pi) = '3.1416' ).
-    self assert:( (PrintfScanf printf:'%.8f' argument:FixedPoint pi)  = '3.14159265' ).
-    self assert:( (PrintfScanf printf:'%f' argument:FixedPoint pi)    = '3.141593' ).
+    |pi|
+
+    pi := FixedPoint pi.
+
+    self assert:( (PrintfScanf printf:'%.4f' argument:pi) = '3.1416' ).
+    self assert:( (PrintfScanf printf:'%.8f' argument:pi)  = '3.14159265' ).
+    self assert:( (PrintfScanf printf:'%f' argument:pi)    = '3.141593' ).
 
     "/ too small
-    self assert:( (FixedPoint pi printfPrintString:'%4Lf') = '3.141593' ).
-    self assert:( (FixedPoint pi printfPrintString:'%5Lf') = '3.141593' ).
-    self assert:( (FixedPoint pi printfPrintString:'%6Lf') = '3.141593' ).
-    self assert:( (FixedPoint pi printfPrintString:'%7Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%5Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%6Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%7Lf') = '3.141593' ).
     "/ fit
-    self assert:( (FixedPoint pi printfPrintString:'%8Lf') = '3.141593' ).
-    self assert:( (FixedPoint pi printfPrintString:'%4.2Lf') = '3.14' ).
+    self assert:( (pi printfPrintString:'%8Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4.2Lf') = '3.14' ).
     "/ left filled
-    self assert:( (FixedPoint pi printfPrintString:'%9Lf') = ' 3.141593' ).
+    self assert:( (pi printfPrintString:'%9Lf') = ' 3.141593' ).
     "/ right filled
-    self assert:( (FixedPoint pi printfPrintString:'%-9Lf') = '3.141593 ' ).
+    self assert:( (pi printfPrintString:'%-9Lf') = '3.141593 ' ).
 
     "Created: / 10-10-2017 / 12:36:21 / cg"
     "Modified: / 10-10-2017 / 16:29:20 / cg"
@@ -200,31 +204,35 @@
 testPrintf_Float
     "/ Float
     
-    self assert:( (PrintfScanf printf:'%.0f' argument:Float pi)  = '3' ).
-    self assert:( (PrintfScanf printf:'%#.0f' argument:Float pi) = '3.0' ).  "/ hash forces print of '.0'
-    self assert:( (PrintfScanf printf:'%.1f' argument:Float pi)  = '3.1' ).
-    self assert:( (PrintfScanf printf:'%#.1f' argument:Float pi) = '3.1' ).
-    self assert:( (PrintfScanf printf:'%.2f' argument:Float pi)  = '3.14' ).
-    self assert:( (PrintfScanf printf:'%.3f' argument:Float pi)  = '3.142' ).
-    self assert:( (PrintfScanf printf:'%.4f' argument:Float pi)  = '3.1416' ).
-    self assert:( (PrintfScanf printf:'%.8f' argument:Float pi)  = '3.14159265' ).
-    self assert:( (PrintfScanf printf:'%f' argument:Float pi)    = '3.141593' ).
-    self assert:( (PrintfScanf printf:'%4f' argument:Float pi)   = '3.141593' ).
+    |pi|
+
+    pi := Float pi.
+
+    self assert:( (PrintfScanf printf:'%.0f' argument:pi)  = '3' ).
+    self assert:( (PrintfScanf printf:'%#.0f' argument:pi) = '3.0' ).  "/ hash forces print of '.0'
+    self assert:( (PrintfScanf printf:'%.1f' argument:pi)  = '3.1' ).
+    self assert:( (PrintfScanf printf:'%#.1f' argument:pi) = '3.1' ).
+    self assert:( (PrintfScanf printf:'%.2f' argument:pi)  = '3.14' ).
+    self assert:( (PrintfScanf printf:'%.3f' argument:pi)  = '3.142' ).
+    self assert:( (PrintfScanf printf:'%.4f' argument:pi)  = '3.1416' ).
+    self assert:( (PrintfScanf printf:'%.8f' argument:pi)  = '3.14159265' ).
+    self assert:( (PrintfScanf printf:'%f' argument:pi)    = '3.141593' ).
+    self assert:( (PrintfScanf printf:'%4f' argument:pi)   = '3.141593' ).
 
     "/ too small
-    self assert:( (Float pi printfPrintString:'%4f') = '3.141593' ).
-    self assert:( (Float pi printfPrintString:'%5f') = '3.141593' ).
-    self assert:( (Float pi printfPrintString:'%6f') = '3.141593' ).
-    self assert:( (Float pi printfPrintString:'%7f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%5f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%6f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%7f') = '3.141593' ).
     "/ fit
-    self assert:( (Float pi printfPrintString:'%8f')   = '3.141593' ).
-    self assert:( (Float pi printfPrintString:'%4.2f') = '3.14' ).
+    self assert:( (pi printfPrintString:'%8f')   = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4.2f') = '3.14' ).
     "/ left filled
-    self assert:( (Float pi printfPrintString:'%9f')   = ' 3.141593' ).
-    self assert:( (Float pi printfPrintString:'%8.4f') = '  3.1416' ).
+    self assert:( (pi printfPrintString:'%9f')   = ' 3.141593' ).
+    self assert:( (pi printfPrintString:'%8.4f') = '  3.1416' ).
 
     "/ right filled
-    self assert:( (Float pi printfPrintString:'%-9f') = '3.141593 ' ).
+    self assert:( (pi printfPrintString:'%-9f') = '3.141593 ' ).
 
 false ifTrue:[
     #(
@@ -276,23 +284,26 @@
 
 testPrintf_Fraction
     "/ Fraction
-    
-    self assert:( (PrintfScanf printf:'%.4f' argument:Fraction pi) = '3.1416' ).
-    self assert:( (PrintfScanf printf:'%.8f' argument:Fraction pi)  = '3.14159265' ).
-    self assert:( (PrintfScanf printf:'%f' argument:Fraction pi)    = '3.141593' ).
+    |pi|
+
+    pi := Fraction pi.
+
+self assert:( (PrintfScanf printf:'%.4f' argument:pi) = '3.1416' ).
+    self assert:( (PrintfScanf printf:'%.8f' argument:pi)  = '3.14159265' ).
+    self assert:( (PrintfScanf printf:'%f' argument:pi)    = '3.141593' ).
 
     "/ too small
-    self assert:( (Fraction pi printfPrintString:'%4Lf') = '3.141593' ).
-    self assert:( (Fraction pi printfPrintString:'%5Lf') = '3.141593' ).
-    self assert:( (Fraction pi printfPrintString:'%6Lf') = '3.141593' ).
-    self assert:( (Fraction pi printfPrintString:'%7Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%5Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%6Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%7Lf') = '3.141593' ).
     "/ fit
-    self assert:( (Fraction pi printfPrintString:'%8Lf') = '3.141593' ).
-    self assert:( (Fraction pi printfPrintString:'%4.2Lf') = '3.14' ).
+    self assert:( (pi printfPrintString:'%8Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4.2Lf') = '3.14' ).
     "/ left filled
-    self assert:( (Fraction pi printfPrintString:'%9Lf') = ' 3.141593' ).
+    self assert:( (pi printfPrintString:'%9Lf') = ' 3.141593' ).
     "/ right filled
-    self assert:( (Fraction pi printfPrintString:'%-9Lf') = '3.141593 ' ).
+    self assert:( (pi printfPrintString:'%-9Lf') = '3.141593 ' ).
 
     "Created: / 10-10-2017 / 12:37:25 / cg"
     "Modified: / 10-10-2017 / 16:29:27 / cg"
@@ -433,7 +444,9 @@
 testPrintf_LargeFloat
     "/ LargeFloat- unfinished
 
-    |lf|
+    |lf pi|
+
+    pi := LargeFloat pi.
 
     self 
         skipIf:(Smalltalk isSmalltalkDevelopmentSystem not)
@@ -443,27 +456,30 @@
         skipIf:(Smalltalk at:#LargeFloat) isNil  
         description:'LargeFloat is not loaded'.
 
-    self assert:( (PrintfScanf printf:'%.4f' argument:LargeFloat pi)  = '3.1416' ).
-    self assert:( (PrintfScanf printf:'%.8f' argument:LargeFloat pi)  = '3.14159265' ).
-    self assert:( (PrintfScanf printf:'%f' argument:LargeFloat pi)  = '3.141593' ).
+    self assert:(pi printString) = '3.141592653589793238462643383280'.
+    self assert:( (PrintfScanf printf:'%.4f' argument:pi)  = '3.1416' ).
+    self assert:( (PrintfScanf printf:'%.8f' argument:pi)  = '3.14159265' ).
+
+    self assert:( (PrintfScanf printf:'%f' argument:pi-(LargeFloat readFrom:'3.14159265358979323846264')) = '0.00000000000000000000000338328' ).
+    self assert:( (PrintfScanf printf:'%f' argument:pi)    = '3.141592653589793238462643383280' ).
 
-    "/ too small
-    self assert:( (LargeFloat pi printfPrintString:'%4Lf') = '3.141593' ).
-    self assert:( (LargeFloat pi printfPrintString:'%5Lf') = '3.141593' ).
-    self assert:( (LargeFloat pi printfPrintString:'%6Lf') = '3.141593' ).
-    self assert:( (LargeFloat pi printfPrintString:'%7Lf') = '3.141593' ).
+    "/ too small                                              
+    self assert:( (pi printfPrintString:'%4Lf') = '3.141592653589793238462643383280' ).
+    self assert:( (pi printfPrintString:'%5Lf') = '3.141592653589793238462643383280' ).
+    self assert:( (pi printfPrintString:'%6Lf') = '3.141592653589793238462643383280' ).
+    self assert:( (pi printfPrintString:'%7Lf') = '3.141592653589793238462643383280' ).
     "/ fit
-    self assert:( (LargeFloat pi printfPrintString:'%8Lf') = '3.141593' ).
-    self assert:( (LargeFloat pi printfPrintString:'%4.2Lf') = '3.14' ).
-    self assert:( (LargeFloat pi printfPrintString:'%4.3Lf') = '3.142' ).
-    self assert:( (LargeFloat pi printfPrintString:'%4.4Lf') = '3.1416' ).
-    self assert:( (LargeFloat pi printfPrintString:'%4.5Lf') = '3.14159' ).
-    self assert:( (LargeFloat pi printfPrintString:'%4.6Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%8Lf') = '3.141592653589793238462643383280' ).
+    self assert:( (pi printfPrintString:'%4.2Lf') = '3.14' ).
+    self assert:( (pi printfPrintString:'%4.3Lf') = '3.142' ).
+    self assert:( (pi printfPrintString:'%4.4Lf') = '3.1416' ).
+    self assert:( (pi printfPrintString:'%4.5Lf') = '3.14159' ).
+    self assert:( (pi printfPrintString:'%4.6Lf') = '3.141593' ).
     
     "/ left filled                                               
-    self assert:( (LargeFloat pi printfPrintString:'%9Lf') = ' 3.141593' ).
+    self assert:( (pi printfPrintString:'%9Lf') = ' 3.141593' ).
     "/ right filled
-    self assert:( (LargeFloat pi printfPrintString:'%-9Lf') = '3.141593 ' ).
+    self assert:( (pi printfPrintString:'%-9Lf') = '3.141593 ' ).
 
     "/ exact (to 130 digits)  value is:
     "/ 3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 5923078164 0628620899 8628034825 3421170679 8214808651 3282306647 
@@ -513,9 +529,11 @@
     self assert:( (lf printfPrintString:'%4.21Lf') = '0.00000000000000000001' ).
     lf := lf / 10.
     self assert:( (lf printfPrintString:'%4.22Lf') = '0.000000000000000000001' ).
-
-    self assert:( ((LargeFloat pi - 3) printfPrintString:'%4.20Lf') = '0.14159265358979323846' ).
-    self assert:( (LargeFloat pi printfPrintString:'%4.20Lf') = '3.14159265358979323846' ).
+    lf := pi.
+    self assert:( (lf printString) = '3.141592653589793238462643383280' ).
+    self assert:( (lf printfPrintString:'%4.20Lf') = '3.14159265358979323846' ).
+    lf := lf - 3.
+    self assert:( (lf printfPrintString:'%4.20Lf') = '0.14159265358979323846' ).
 
     "Created: / 10-10-2017 / 16:25:25 / cg"
     "Modified: / 05-06-2019 / 20:15:13 / Claus Gittinger"
@@ -525,24 +543,28 @@
 testPrintf_LongFloat
     "/ LongFloat
     
-    self assert:( (PrintfScanf printf:'%.4f' argument:LongFloat pi)  = '3.1416' ).
-    self assert:( (PrintfScanf printf:'%.8f' argument:LongFloat pi)  = '3.14159265' ).
-    self assert:( (PrintfScanf printf:'%f' argument:LongFloat pi)  = '3.14159265' ).
+    |pi|
+
+    pi := LongFloat pi.
+
+    self assert:( (PrintfScanf printf:'%.4f' argument:pi)  = '3.1416' ).
+    self assert:( (PrintfScanf printf:'%.8f' argument:pi)  = '3.14159265' ).
+    self assert:( (PrintfScanf printf:'%f' argument:pi)  = '3.14159265' ).
 
     "/ LongFloat
 
     "/ too small
-    self assert:( (LongFloat pi printfPrintString:'%4Lf') = '3.141593' ).
-    self assert:( (LongFloat pi printfPrintString:'%5Lf') = '3.141593' ).
-    self assert:( (LongFloat pi printfPrintString:'%6Lf') = '3.141593' ).
-    self assert:( (LongFloat pi printfPrintString:'%7Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%5Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%6Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%7Lf') = '3.141593' ).
     "/ fit
-    self assert:( (LongFloat pi printfPrintString:'%8Lf') = '3.141593' ).
-    self assert:( (LongFloat pi printfPrintString:'%4.2Lf') = '3.14' ).
+    self assert:( (pi printfPrintString:'%8Lf') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4.2Lf') = '3.14' ).
     "/ left filled
-    self assert:( (LongFloat pi printfPrintString:'%9Lf') = ' 3.141593' ).
+    self assert:( (pi printfPrintString:'%9Lf') = ' 3.141593' ).
     "/ right filled
-    self assert:( (LongFloat pi printfPrintString:'%-9Lf') = '3.141593 ' ).
+    self assert:( (pi printfPrintString:'%-9Lf') = '3.141593 ' ).
 
     "Created: / 10-10-2017 / 12:35:40 / cg"
     "Modified: / 10-10-2017 / 16:29:56 / cg"
@@ -609,58 +631,64 @@
 
 testPrintf_QDouble
     "/ QDouble
+    |pi|
+
+    pi := QDouble pi.
 
     self 
         skipIf:(OperatingSystem isUNIXlike and:[ExternalAddress pointerSize = 4])
         description:'Fails under Linux32'.
 
-    self assert:( (PrintfScanf printf:'%.4f' argument:QDouble pi)  = '3.1416' ).
-    self assert:( (PrintfScanf printf:'%.8f' argument:QDouble pi)  = '3.14159265' ).
-    self assert:( (PrintfScanf printf:'%f' argument:QDouble pi)    = '3.141592653589793' ).
+    self assert:( (PrintfScanf printf:'%.4f' argument:pi)  = '3.1416' ).
+    self assert:( (PrintfScanf printf:'%.8f' argument:pi)  = '3.14159265' ).
+    self assert:( (PrintfScanf printf:'%f' argument:pi)    = '3.141592653589793' ).
 
-    self assert:( (QDouble pi printfPrintString:'%4Lf') = '3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%5Lf') = '3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%6Lf') = '3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%7Lf') = '3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%18Lf') = ' 3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%19Lf') = '  3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%20Lf') = '   3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%21Lf') = '    3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%4Lf') = '3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%5Lf') = '3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%6Lf') = '3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%7Lf') = '3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%18Lf') = ' 3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%19Lf') = '  3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%20Lf') = '   3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%21Lf') = '    3.141592653589793' ).
     "/ fit
-    self assert:( (QDouble pi printfPrintString:'%22Lf') = '     3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%4.2Lf') = '3.14' ).
+    self assert:( (pi printfPrintString:'%22Lf') = '     3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%4.2Lf') = '3.14' ).
     "/ left filled
-    self assert:( (QDouble pi printfPrintString:'%23Lf') = '      3.141592653589793' ).
-    self assert:( (QDouble pi printfPrintString:'%30Lf') = '             3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%23Lf') = '      3.141592653589793' ).
+    self assert:( (pi printfPrintString:'%30Lf') = '             3.141592653589793' ).
     "/ right filled
-    self assert:( (QDouble pi printfPrintString:'%-30Lf') = '3.141592653589793             ' ).
+    self assert:( (pi printfPrintString:'%-30Lf') = '3.141592653589793             ' ).
 
     "Created: / 10-10-2017 / 12:24:22 / cg"
     "Modified: / 10-10-2017 / 16:28:51 / cg"
 !
 
 testPrintf_ShortFloat
-    self assert:( (PrintfScanf printf:'%.4f' argument:ShortFloat pi) = '3.1416' ).
-    self assert:( (PrintfScanf printf:'%f' argument:ShortFloat pi) = '3.14159' ).
+    |pi|
+
+    pi := ShortFloat pi.
+    self assert:( (PrintfScanf printf:'%.4f' argument:pi) = '3.1416' ).
+    self assert:( (PrintfScanf printf:'%f' argument:pi) = '3.14159' ).
 
     "/ ShortFloat
 
     "/ too small
-    self assert:( (ShortFloat pi printfPrintString:'%4f') = '3.141593' ).
-    self assert:( (ShortFloat pi printfPrintString:'%5f') = '3.141593' ).
-    self assert:( (ShortFloat pi printfPrintString:'%6f') = '3.141593' ).
-    self assert:( (ShortFloat pi printfPrintString:'%7f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%5f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%6f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%7f') = '3.141593' ).
     "/ fit
-    self assert:( (ShortFloat pi printfPrintString:'%8f') = '3.141593' ).
-    self assert:( (ShortFloat pi printfPrintString:'%4.2f') = '3.14' ).
+    self assert:( (pi printfPrintString:'%8f') = '3.141593' ).
+    self assert:( (pi printfPrintString:'%4.2f') = '3.14' ).
 
     "/ left filled
-    self assert:( (ShortFloat pi printfPrintString:'%9f') = ' 3.141593' ).
-    self assert:( (ShortFloat pi printfPrintString:'%8.4f') = '  3.1416' ).
+    self assert:( (pi printfPrintString:'%9f') = ' 3.141593' ).
+    self assert:( (pi printfPrintString:'%8.4f') = '  3.1416' ).
 
     "/ right filled
-    self assert:( (ShortFloat pi printfPrintString:'%-9f') = '3.141593 ' ).
-    self assert:( (ShortFloat pi printfPrintString:'%-8.4f') = '3.1416  ' ).
+    self assert:( (pi printfPrintString:'%-9f') = '3.141593 ' ).
+    self assert:( (pi printfPrintString:'%-8.4f') = '3.1416  ' ).
 
     "Created: / 10-10-2017 / 12:35:12 / cg"
     "Modified: / 10-10-2017 / 16:32:31 / cg"