factor/library/test/parse-number.factor

115 lines
1.5 KiB
Factor
Raw Normal View History

IN: temporary
USING: errors kernel math parser test ;
2005-07-31 23:38:33 -04:00
: parse-number ( str -- num )
#! Convert a string to a number; return f on error.
[ string>number ] [ [ drop f ] when ] catch ;
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" ]
[ "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" ]
[ "-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" ]
[ "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" ]
[ "-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" ]
[ "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" ]
[ "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" ]
[ "-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" ]
[ "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" ]
[ "-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
[ -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
[ f ]
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" ]
[ "66/200" parse-number number>string ]
2005-01-28 23:55:22 -05:00
unit-test
[ "12" bin> ] unit-test-fails
[ "fdsf" bin> ] unit-test-fails
[ 3 ] [ "11" bin> ] unit-test