2005-03-28 23:45:13 -05:00
|
|
|
IN: temporary
|
2006-01-26 23:01:14 -05:00
|
|
|
USING: errors kernel math parser sequences test ;
|
2005-07-31 23:38:33 -04:00
|
|
|
|
|
|
|
: parse-number ( str -- num )
|
|
|
|
#! Convert a string to a number; return f on error.
|
2005-09-20 20:18:01 -04:00
|
|
|
[ string>number ] catch [ drop f ] when ;
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ f parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "12345abcdef" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ t ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "-12" parse-number 0 < ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "--12" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "-" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "e" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "100.0" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "1.0e2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "-100.0" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "-1.0e2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "0.01" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "1.0e-2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "-0.01" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "-1.0e-2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "-1e-2e4" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "3.14" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "3.14" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "." parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ ".e" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "101.0" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "1.01e2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "-101.0" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "-1.01e2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "1.01" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "101.0e-2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "-1.01" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "-101.0e-2" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ 5 ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "10/2" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ -5 ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "-10/2" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
2004-08-07 18:45:48 -04:00
|
|
|
[ -5 ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "10/-2" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
2004-08-07 18:45:48 -04:00
|
|
|
[ 5 ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "-10/-2" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
2005-12-24 23:01:49 -05:00
|
|
|
[ 5.0 ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "10.0/2" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "1e1/2" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ f ]
|
2005-01-28 23:55:22 -05:00
|
|
|
[ "e/2" parse-number ]
|
|
|
|
unit-test
|
2004-07-16 02:26:21 -04:00
|
|
|
|
|
|
|
[ "33/100" ]
|
2005-08-21 20:50:14 -04:00
|
|
|
[ "66/200" parse-number number>string ]
|
2005-01-28 23:55:22 -05:00
|
|
|
unit-test
|
2004-10-10 14:28:56 -04:00
|
|
|
|
|
|
|
[ "12" bin> ] unit-test-fails
|
|
|
|
[ "fdsf" bin> ] unit-test-fails
|
|
|
|
[ 3 ] [ "11" bin> ] unit-test
|
2006-01-26 23:01:14 -05:00
|
|
|
|
|
|
|
[ t ] [
|
|
|
|
{ "1.0/0.0" "-1.0/0.0" "0.0/0.0" }
|
|
|
|
[ dup string>number number>string = ] all?
|
|
|
|
] unit-test
|
|
|
|
|
|
|
|
[ t ] [
|
|
|
|
{ 1.0/0.0 -1.0/0.0 0.0/0.0 }
|
|
|
|
[ dup number>string string>number = ] all?
|
|
|
|
] unit-test
|