home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / forth / pfe-0.000 / pfe-0 / pfe-0.9.13 / test / arith.4th next >
Encoding:
Text File  |  1993-12-12  |  4.0 KB  |  156 lines

  1. \
  2. \ arith.4th ---    test integer arithmetic operators
  3. \ (duz 05Aug93)
  4. \
  5.  
  6. CR .( integer add, subtract)
  7.  
  8. MARKER FORGET-ARITH-TEST
  9.  
  10. : T1    12 7 DO  I BASE !
  11.         S"  123456543  123456543 - . " EVALUATE
  12.         S" -123456543 -123456543 - . " EVALUATE
  13.         S" -123456543  123456543 + . " EVALUATE
  14.         S"  123456543 -123456543 + . " EVALUATE  SPACE
  15.     LOOP  DECIMAL ;
  16.  
  17. CR .(    ) T1  SPACE D
  18.  
  19.  
  20. : T2    12 7 DO  I BASE !
  21.         S"  123456012.012345  123456012.012345 D- D. " EVALUATE
  22.         S" -123456012.012345 -123456012.012345 D- D. " EVALUATE
  23.         S" -123456012.012345  123456012.012345 D+ D. " EVALUATE
  24.         S"  123456012.012345 -123456012.012345 D+ D. " EVALUATE  SPACE
  25.     LOOP  DECIMAL ;
  26.  
  27. CR .(    ) T2  SPACE D
  28.  
  29.  
  30. : T3    12 7 DO  I BASE !
  31.         S" 2222222222 1111111111 + 3333333333 = Y " EVALUATE
  32.         S" 3333333333 1111111111 - 2222222222 = Y " EVALUATE
  33.     LOOP  DECIMAL ;
  34.  
  35. CR .(    ) T3  SPACE D
  36.  
  37.  
  38. : T4    12 7 DO  I BASE !
  39.         S" 222222222222222222. 111111111111111111. D+ "    EVALUATE
  40.         S" 333333333333333333. D= Y "            EVALUATE
  41.         S" 333333333333333333. 111111111111111111. D- "    EVALUATE
  42.         S" 222222222222222222. D= Y "            EVALUATE
  43.         SPACE
  44.     LOOP  DECIMAL ;
  45.  
  46. CR .(    ) T4  SPACE D
  47.  
  48.  
  49. CR .( integer multiply)
  50.  
  51. : T5    12 7 DO  I BASE !
  52.         S"  123456  1000 *  123456000 = Y "    EVALUATE
  53.         S"  1000  123456 *  123456000 = Y "    EVALUATE
  54.         S" -123456 -1000 *  123456000 = Y "    EVALUATE
  55.         S" -1000 -123456 *  123456000 = Y "    EVALUATE SPACE
  56.     LOOP  CR ."    "
  57.     12 7 DO  I BASE !
  58.         S" -123456  1000 * -123456000 = Y "    EVALUATE
  59.         S" -1000  123456 * -123456000 = Y "    EVALUATE
  60.         S"  123456 -1000 * -123456000 = Y "    EVALUATE
  61.         S"  1000 -123456 * -123456000 = Y "    EVALUATE SPACE
  62.     LOOP  DECIMAL ;
  63.  
  64. CR .(    ) T5  SPACE D
  65.  
  66.  
  67. : T6    12 7 DO  I BASE !
  68.         S"  123456123     1000 M*  123456123.000    D= Y" EVALUATE
  69.         S"  1000     123456123 M*  123456123.000    D= Y" EVALUATE
  70.         S" -123456123 -1000000 M*  123456123.000000 D= Y" EVALUATE
  71.         S" -1000000 -123456123 M*  123456123.000000 D= Y" EVALUATE
  72.         SPACE
  73.     LOOP  CR ."    "
  74.     12 7 DO  I BASE !
  75.         S" -123456123  1000000 M* -123456123.000000 D= Y" EVALUATE
  76.         S" -1000000  123456123 M* -123456123.000000 D= Y" EVALUATE
  77.         S"  123456123 -1000000 M* -123456123.000000 D= Y" EVALUATE
  78.         S"  1000000 -123456123 M* -123456123.000000 D= Y" EVALUATE
  79.         SPACE
  80.     LOOP  DECIMAL ;
  81.  
  82. CR .(    ) T6  SPACE D
  83.  
  84.  
  85. : T7    12 7 DO  I BASE !
  86.         S" 123456123    10000 UM* 123456123.0000    D= Y" EVALUATE
  87.         S" 10000 123456123    UM* 123456123.0000    D= Y" EVALUATE
  88.         S" 65432165 100000000 UM* 65432165.00000000 D= Y" EVALUATE
  89.         S" 100000000 65432165 UM* 65432165.00000000 D= Y" EVALUATE
  90.         SPACE
  91.     LOOP  DECIMAL ;
  92.  
  93. CR .(    ) T7  SPACE D
  94.  
  95.  
  96. CR .( integer divide)
  97.  
  98. : T8    12 7 DO  I BASE !
  99.         S" 123456543.2165 10000 UM/MOD "    EVALUATE
  100.         S" 123456543 = Y "            EVALUATE
  101.             S"   2165 = Y "            EVALUATE
  102.         S" 123456.12345654 100000000 UM/MOD "    EVALUATE
  103.         S" 123456 = Y "                EVALUATE
  104.               S"  12345654 = Y "        EVALUATE SPACE
  105.     LOOP  DECIMAL ;
  106.  
  107. CR .(    ) T8  SPACE D
  108.  
  109.  
  110. : T9    12 7 DO  I BASE !
  111.         S" -123456543.2165 10000 SM/REM "    EVALUATE
  112.         S" -123456543 = Y "            EVALUATE
  113.             S"   -2165 = Y "        EVALUATE
  114.         S" -123456.12345654 100000000 SM/REM "    EVALUATE
  115.         S" -123456 = Y "            EVALUATE
  116.               S"  -12345654 = Y "        EVALUATE SPACE
  117.     LOOP  DECIMAL ;
  118.  
  119. CR .(    ) T9  SPACE D
  120.  
  121.  
  122. : T10    12 7 DO  I BASE !
  123.         S"  123456543.2165 -10000 SM/REM "    EVALUATE
  124.         S" -123456543 = Y "            EVALUATE
  125.             S"    2165 = Y "        EVALUATE
  126.         S"  123456.12345654 -100000000 SM/REM"    EVALUATE
  127.         S" -123456 = Y "            EVALUATE
  128.               S"   12345654 = Y "        EVALUATE SPACE
  129.     LOOP  DECIMAL ;
  130.  
  131. CR .(    ) T10 SPACE D
  132.  
  133.  
  134. : T11    12 7 DO  I BASE !
  135.         S" -123456543.2165 10000 SM/REM "    EVALUATE
  136.         S" -123456543 = Y "            EVALUATE
  137.             S"   -2165 = Y "        EVALUATE
  138.         S" -123456.12345654 100000000 SM/REM "    EVALUATE
  139.         S" -123456 = Y "            EVALUATE
  140.               S"  -12345654 = Y "        EVALUATE SPACE
  141.     LOOP  DECIMAL ;
  142.  
  143. CR .(    ) T11 SPACE D
  144.  
  145.  
  146. : T12    12 7 DO  I BASE !
  147.         S" -123456543.2165 -10000 SM/REM "    EVALUATE
  148.         S"  123456543 = Y "            EVALUATE
  149.             S"  -2165 = Y "            EVALUATE
  150.         S" -123456.12345654 -100000000 SM/REM "    EVALUATE
  151.         S"  123456 = Y "            EVALUATE
  152.               S"  -12345654 = Y "        EVALUATE SPACE
  153.     LOOP  DECIMAL ;
  154.  
  155. CR .(    ) T12 SPACE D
  156.