-\ @(#) t_floats.fth 98/02/26 1.1 17:46:04\r
-\ Test ANS Forth FLOAT words.\r
-\\r
-\ Copyright 1994 3DO, Phil Burk\r
-\r
-INCLUDE? }T{ t_tools.fth\r
-\r
-ANEW TASK-T_FLOATS.FTH\r
-\r
-DECIMAL\r
-3.14159265 fconstant PI\r
-\r
-TEST{\r
-\ ==========================================================\r
-T{ 1 2 3 }T{ 1 2 3 }T\r
-\ ----------------------------------------------------- D>F F>D\r
-\ test some basic floating point <> integer conversion\r
-T{ 4 0 D>F F>D }T{ 4 0 }T\r
-T{ 835 0 D>F F>D }T{ 835 0 }T\r
-T{ -57 -1 D>F F>D }T{ -57 -1 }T\r
-T{ 15 S>F 2 S>F F/ F>S }T{ 7 }T \ 15.0/2.0 -> 7.5\r
-\r
-\ ----------------------------------------------------- input\r
-T{ 79.2 F>S }T{ 79 }T\r
-T{ 0.003 F>S }T{ 0 }T\r
-\r
-\ ------------------------------------------------------ F~\r
-T{ 23.4 23.5 0.2 f~ }T{ true }T\r
-T{ 23.4 23.7 0.2 f~ }T{ false }T\r
-T{ 922.3 922.3 0.0 f~ }T{ true }T\r
-T{ 922.3 922.31 0.0 f~ }T{ false }T\r
-T{ 0.0 0.0 0.0 f~ }T{ true }T\r
-T{ 0.0 -0.0 0.0 f~ }T{ false }T\r
-T{ 50.0 51.0 -0.02 f~ }T{ true }T\r
-T{ 50.0 51.0 -0.002 f~ }T{ false }T\r
-T{ 500.0 510.0 -0.02 f~ }T{ true }T\r
-T{ 500.0 510.0 -0.002 f~ }T{ false }T\r
-\r
-\ convert number to text representation and then back to float\r
-: T_F. ( -- ok? ) ( r ftol -f- )\r
- fover (f.) >float fswap f~\r
- AND\r
-;\r
-: T_FS. ( -- ok? ) ( r -f- )\r
- fover (fs.) >float fswap f~\r
- AND\r
-;\r
-: T_FE. ( -- ok? ) ( r -f- )\r
- fover (fe.) >float fswap f~\r
- AND\r
-;\r
-\r
-: T_FG. ( -- ok? ) ( r -f- )\r
- fover (f.) >float fswap f~\r
- AND\r
-;\r
-\r
-: T_F>D ( -- ok? ) ( r -f- )\r
- fover f>d d>f fswap f~\r
-;\r
-\r
-T{ 0.0 0.00001 T_F. }T{ true }T\r
-T{ 0.0 0.00001 T_FS. }T{ true }T\r
-T{ 0.0 0.00001 T_FE. }T{ true }T\r
-T{ 0.0 0.00001 T_FG. }T{ true }T\r
-T{ 0.0 0.00001 T_F>D }T{ true }T\r
-\r
-T{ 12.34 -0.0001 T_F. }T{ true }T\r
-T{ 12.34 -0.0001 T_FS. }T{ true }T\r
-T{ 12.34 -0.0001 T_FE. }T{ true }T\r
-T{ 12.34 -0.0001 T_FG. }T{ true }T\r
-T{ 1234.0 -0.0001 T_F>D }T{ true }T\r
-\r
-T{ 2345 S>F 79 S>F F/ -0.0001 T_F. }T{ true }T\r
-T{ 511 S>F -294 S>F F/ -0.0001 T_F. }T{ true }T\r
-\r
-: T.SERIES { N matchCFA | flag -- ok? } ( fstart fmult -f- )\r
- fswap ( -- fmust fstart )\r
- true -> flag\r
- N 0\r
- ?DO\r
- fdup -0.0001 matchCFA execute not\r
- IF\r
- false -> flag\r
- ." T_F_SERIES failed for " i . fdup f. cr\r
- leave\r
- THEN\r
-\ i . fdup f. cr\r
- fover f*\r
- LOOP\r
- matchCFA >name id. ." T.SERIES final = " fs. cr\r
- flag\r
-;\r
-\r
-: T.SERIES_F. ['] t_f. t.series ;\r
-: T.SERIES_FS. ['] t_fs. t.series ;\r
-: T.SERIES_FG. ['] t_fg. t.series ;\r
-: T.SERIES_FE. ['] t_fe. t.series ;\r
-: T.SERIES_F>D ['] t_f>d t.series ;\r
-\r
-T{ 1.0 1.3 150 t.series_f. }T{ true }T\r
-T{ 1.0 -1.3 150 t.series_f. }T{ true }T\r
-T{ 2.3456789 1.3719 150 t.series_f. }T{ true }T\r
-\r
-T{ 3000.0 1.298 120 t.series_f>d }T{ true }T\r
-\r
-T{ 1.2 1.27751 150 t.series_fs. }T{ true }T\r
-T{ 7.43 0.812255 200 t.series_fs. }T{ true }T\r
-\r
-T{ 1.195 1.30071 150 t.series_fe. }T{ true }T\r
-T{ 5.913 0.80644 200 t.series_fe. }T{ true }T\r
-\r
-T{ 1.395 1.55071 120 t.series_fe. }T{ true }T\r
-T{ 5.413 0.83644 160 t.series_fe. }T{ true }T\r
-\r
-\ ----------------------------------------------------- FABS\r
-T{ 0.0 FABS 0.0 0.00001 F~ }T{ true }T\r
-T{ 7.0 FABS 7.0 0.00001 F~ }T{ true }T\r
-T{ -47.3 FABS 47.3 0.00001 F~ }T{ true }T\r
-\r
-\ ----------------------------------------------------- FSQRT\r
-T{ 49.0 FSQRT 7.0 -0.0001 F~ }T{ true }T\r
-T{ 2.0 FSQRT 1.414214 -0.0001 F~ }T{ true }T\r
-\r
-\ ----------------------------------------------------- FSIN\r
-T{ 0.0 FSIN 0.0 0.00001 F~ }T{ true }T\r
-T{ PI FSIN 0.0 0.00001 F~ }T{ true }T\r
-T{ PI 2.0 F* FSIN 0.0 0.00001 F~ }T{ true }T\r
-T{ PI 0.5 F* FSIN 1.0 0.00001 F~ }T{ true }T\r
-T{ PI 6.0 F/ FSIN 0.5 0.00001 F~ }T{ true }T\r
-\r
-\ ----------------------------------------------------- \\r
-}TEST\r
-\r
+\ @(#) t_floats.fth 98/02/26 1.1 17:46:04
+\ Test ANS Forth FLOAT words.
+\
+\ Copyright 1994 3DO, Phil Burk
+
+INCLUDE? }T{ t_tools.fth
+
+ANEW TASK-T_FLOATS.FTH
+
+DECIMAL
+3.14159265 fconstant PI
+
+TEST{
+\ ==========================================================
+T{ 1 2 3 }T{ 1 2 3 }T
+\ ----------------------------------------------------- D>F F>D
+\ test some basic floating point <> integer conversion
+T{ 4 0 D>F F>D }T{ 4 0 }T
+T{ 835 0 D>F F>D }T{ 835 0 }T
+T{ -57 -1 D>F F>D }T{ -57 -1 }T
+T{ 15 S>F 2 S>F F/ F>S }T{ 7 }T \ 15.0/2.0 -> 7.5
+
+\ ----------------------------------------------------- input
+T{ 79.2 F>S }T{ 79 }T
+T{ 0.003 F>S }T{ 0 }T
+
+\ ------------------------------------------------------ F~
+T{ 23.4 23.5 0.2 f~ }T{ true }T
+T{ 23.4 23.7 0.2 f~ }T{ false }T
+T{ 922.3 922.3 0.0 f~ }T{ true }T
+T{ 922.3 922.31 0.0 f~ }T{ false }T
+T{ 0.0 0.0 0.0 f~ }T{ true }T
+T{ 0.0 -0.0 0.0 f~ }T{ false }T
+T{ 50.0 51.0 -0.02 f~ }T{ true }T
+T{ 50.0 51.0 -0.002 f~ }T{ false }T
+T{ 500.0 510.0 -0.02 f~ }T{ true }T
+T{ 500.0 510.0 -0.002 f~ }T{ false }T
+
+\ convert number to text representation and then back to float
+: T_F. ( -- ok? ) ( r ftol -f- )
+ fover (f.) >float fswap f~
+ AND
+;
+: T_FS. ( -- ok? ) ( r ftol -f- )
+ fover (fs.) >float fswap f~
+ AND
+;
+: T_FE. ( -- ok? ) ( r ftol -f- )
+ fover (fe.) >float fswap f~
+ AND
+;
+
+: T_FG. ( -- ok? ) ( r ftol -f- )
+ fover (f.) >float fswap f~
+ AND
+;
+
+: T_F>D ( -- ok? ) ( r ftol -f- )
+ fover f>d d>f fswap f~
+;
+
+T{ 0.0 0.00001 T_F. }T{ true }T
+T{ 0.0 0.00001 T_FS. }T{ true }T
+T{ 0.0 0.00001 T_FE. }T{ true }T
+T{ 0.0 0.00001 T_FG. }T{ true }T
+T{ 0.0 0.00001 T_F>D }T{ true }T
+
+T{ 12.34 -0.0001 T_F. }T{ true }T
+T{ 12.34 -0.0001 T_FS. }T{ true }T
+T{ 12.34 -0.0001 T_FE. }T{ true }T
+T{ 12.34 -0.0001 T_FG. }T{ true }T
+T{ 1234.0 -0.0001 T_F>D }T{ true }T
+
+T{ 2345 S>F 79 S>F F/ -0.0001 T_F. }T{ true }T
+T{ 511 S>F -294 S>F F/ -0.0001 T_F. }T{ true }T
+
+: T.SERIES { N matchCFA | flag -- ok? } ( fstart fmult -f- )
+ fswap ( -- fmult fstart )
+ true -> flag
+ N 0
+ ?DO
+ fdup -0.0001 matchCFA execute not
+ IF
+ false -> flag
+ ." T_F_SERIES failed for " i . fdup f. cr
+ leave
+ THEN
+\ i . fdup f. cr
+ fover f*
+ LOOP
+ matchCFA >name id. ." T.SERIES final = " fs. cr
+ flag
+;
+
+: T.SERIES_F. ['] t_f. t.series ;
+: T.SERIES_FS. ['] t_fs. t.series ;
+: T.SERIES_FG. ['] t_fg. t.series ;
+: T.SERIES_FE. ['] t_fe. t.series ;
+: T.SERIES_F>D ['] t_f>d t.series ;
+
+T{ 1.0 1.3 150 t.series_f. }T{ true }T
+T{ 1.0 -1.3 150 t.series_f. }T{ true }T
+T{ 2.3456789 1.3719 150 t.series_f. }T{ true }T
+
+T{ 3000.0 1.298 120 t.series_f>d }T{ true }T
+
+T{ 1.2 1.27751 150 t.series_fs. }T{ true }T
+T{ 7.43 0.812255 200 t.series_fs. }T{ true }T
+
+T{ 1.195 1.30071 150 t.series_fe. }T{ true }T
+T{ 5.913 0.80644 200 t.series_fe. }T{ true }T
+
+T{ 1.395 1.55071 120 t.series_fe. }T{ true }T
+T{ 5.413 0.83644 160 t.series_fe. }T{ true }T
+
+\ ----------------------------------------------------- FABS
+T{ 0.0 FABS 0.0 0.00001 F~ }T{ true }T
+T{ 7.0 FABS 7.0 0.00001 F~ }T{ true }T
+T{ -47.3 FABS 47.3 0.00001 F~ }T{ true }T
+
+\ ----------------------------------------------------- FSQRT
+T{ 49.0 FSQRT 7.0 -0.0001 F~ }T{ true }T
+T{ 2.0 FSQRT 1.414214 -0.0001 F~ }T{ true }T
+
+\ ----------------------------------------------------- FSIN
+T{ 0.0 FSIN 0.0 0.00001 F~ }T{ true }T
+T{ PI FSIN 0.0 0.00001 F~ }T{ true }T
+T{ PI 2.0 F* FSIN 0.0 0.00001 F~ }T{ true }T
+T{ PI 0.5 F* FSIN 1.0 0.00001 F~ }T{ true }T
+T{ PI 6.0 F/ FSIN 0.5 0.00001 F~ }T{ true }T
+
+\ ----------------------------------------------------- \
+}TEST
+