--- 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"