]> gitweb.factorcode.org Git - factor.git/blobdiff - core/math/parser/parser-tests.factor
use radix literals
[factor.git] / core / math / parser / parser-tests.factor
index 34bca8a34eae4b6a3f70cb8624b901ab67c0f2f2..7194f1b4278ac6aa6a85d194bea3f9fd8fa82055 100644 (file)
@@ -5,12 +5,40 @@ IN: math.parser.tests
 [ f string>number ]
 unit-test
 
+[ f ]
+[ ";" string>number ]
+unit-test
+
+[ f ]
+[ "<>" string>number ]
+unit-test
+
+[ f ]
+[ "^" string>number ]
+unit-test
+
+[ f ]
+[ "789:;<=>?@" string>number ]
+unit-test
+
 [ f ]
 [ "12345abcdef" string>number ]
 unit-test
 
-[ t ]
-[ "-12" string>number 0 < ]
+[ 12 ]
+[ "+12" string>number ]
+unit-test
+
+[ -12 ]
+[ "-12" string>number ]
+unit-test
+
+[ f ]
+[ "-+12" string>number ]
+unit-test
+
+[ f ]
+[ "+-12" string>number ]
 unit-test
 
 [ f ]
@@ -25,6 +53,21 @@ unit-test
 [ "e" string>number ]
 unit-test
 
+[ 1/2 ] [ "1/2" string>number ] unit-test
+[ -1/2 ] [ "-1/2" string>number ] unit-test
+[ 2 ] [ "4/2" string>number ] unit-test
+[ f ] [ "1/-2" string>number ] unit-test
+[ f ] [ "1/2/3" string>number ] unit-test
+[ 1+1/2 ] [ "1+1/2" string>number ] unit-test
+[ 1+1/2 ] [ "+1+1/2" string>number ] unit-test
+[ f ] [ "1-1/2" string>number ] unit-test
+[ -1-1/2 ] [ "-1-1/2" string>number ] unit-test
+[ f ] [ "-1+1/2" string>number ] unit-test
+[ f ] [ "1+2" string>number ] unit-test
+[ f ] [ "1+" string>number ] unit-test
+[ f ] [ "1-" string>number ] unit-test
+[ f ] [ "1+1/2+2" string>number ] unit-test
+
 [ 100000 ] [ "100,000" string>number ] unit-test
 
 [ 100000.0 ] [ "100,000.0" string>number ] unit-test
@@ -37,25 +80,59 @@ unit-test
 [ f ] [ "-,2" string>number ] unit-test
 
 [ 2.0 ] [ "2." string>number ] unit-test
+[ 2.0 ] [ "+2." string>number ] unit-test
+[ 0.25 ] [ ".25" string>number ] unit-test
+[ -2.0 ] [ "-2." string>number ] unit-test
+[ -0.25 ] [ "-.25" string>number ] unit-test
+[ f ]  [ "-." string>number ] unit-test
 
 [ 255 ] [ "ff" hex> ] unit-test
 
+[ 100.0 ] [ "1.0e2" string>number ] unit-test
+[ 100.0 ] [ "100.0" string>number ] unit-test
+[ 100.0 ] [ "100." string>number ] unit-test
+
+[ 100.0 ] [ "1e2" string>number ] unit-test
+[ 100.0 ] [ "1e+2" string>number ] unit-test
+[ 0x1e2 ] [ "1e2" hex> ] unit-test
+
+[ 0x1.999999999999ap-3 ] [ "0.2" string>number ] unit-test
+[ 0x1.3333333333333p0  ] [ "1.2" string>number ] unit-test
+[ 0x1.5555555555555p0  ] [ "1.333,333,333,333,333,333" string>number ] unit-test
+[ 0x1.aaaaaaaaaaaabp0  ] [ "1.666,666,666,666,666,666" string>number ] unit-test
+
 [ "100.0" ]
 [ "1.0e2" string>number number>string ]
 unit-test
 
+[ -100.0 ] [ "-1.0e2" string>number ] unit-test
+[ -100.0 ] [ "-100.0" string>number ] unit-test
+[ -100.0 ] [ "-100." string>number ] unit-test
+
 [ "-100.0" ]
 [ "-1.0e2" string>number number>string ]
 unit-test
 
+[ -100.0 ] [ "-1.e2" string>number ] unit-test
+
 [ "0.01" ]
 [ "1.0e-2" string>number number>string ]
 unit-test
 
+[ 0.01 ] [ "1.0e-2" string>number ] unit-test
+
 [ "-0.01" ]
 [ "-1.0e-2" string>number number>string ]
 unit-test
 
+[ -0.01 ] [ "-1.0e-2" string>number ] unit-test
+
+[ "-0.01" ]
+[ "-1.e-2" string>number number>string ]
+unit-test
+
+[ -1.0e-12 ] [ "-1.0e-12" string>number ] unit-test
+
 [ t ]
 [ "-1.0e-12" string>number number>string { "-1.0e-12" "-1.0e-012" } member? ]
 unit-test
@@ -71,7 +148,7 @@ unit-test
 [ f ]
 [ "." string>number ]
 unit-test
-
 [ f ]
 [ ".e" string>number ]
 unit-test
@@ -96,6 +173,10 @@ unit-test
 [ "1e1/2" string>number ]
 unit-test
 
+[ f ]
+[ "1e1.2" string>number ]
+unit-test
+
 [ f ]
 [ "e/2" string>number ]
 unit-test
@@ -122,6 +203,8 @@ unit-test
 
 [ -1/0. ] [ "-1/0." string>number ] unit-test
 
+[ -0.5 ] [ "-1/2." string>number ] unit-test
+
 [ "-0.0" ] [ -0.0 number>string ] unit-test
 
 [ "-3/4" ] [ -3/4 number>string ] unit-test
@@ -139,6 +222,8 @@ unit-test
 
 [ 1.0 ] [ "1.0" hex> ] unit-test
 [ 1.5 ] [ "1.8" hex> ] unit-test
+[ 1.875 ] [ "1.e" hex> ] unit-test
+[ 1.90625 ] [ "1.e8" hex> ] unit-test
 [ 1.03125 ] [ "1.08" hex> ] unit-test
 [ 15.5 ] [ "f.8" hex> ] unit-test
 [ 15.53125 ] [ "f.88" hex> ] unit-test
@@ -152,3 +237,23 @@ unit-test
 [ 1/0. ] [ "1.0p1024" hex> ] unit-test
 [ -1/0. ] [ "-1.0p1024" hex> ] unit-test
 
+[ 0 ] [ "0" string>number ] unit-test
+[ 0 ] [ "00" string>number ] unit-test
+[ 0.0 ] [ "0." string>number ] unit-test
+[ 0.0 ] [ "0.0" string>number ] unit-test
+[ 0.0 ] [ "0x0.0p0" string>number ] unit-test
+[ 0 ] [ "0x0" string>number ] unit-test
+[ 0 ] [ "0o0" string>number ] unit-test
+[ 0 ] [ "0b0" string>number ] unit-test
+
+[ 10 ] [ "010" string>number ] unit-test
+[ 16 ] [ "0x10" string>number ] unit-test
+[  8 ] [ "0o10" string>number ] unit-test
+[  2 ] [ "0b10" string>number ] unit-test
+
+[ -10 ] [ "-010" string>number ] unit-test
+[ -16 ] [ "-0x10" string>number ] unit-test
+[  -8 ] [ "-0o10" string>number ] unit-test
+[  -2 ] [ "-0b10" string>number ] unit-test
+
+[ 1.0 ] [ "0x1.0p0" string>number ] unit-test