|
| 1 | +' Test miscellaneous floating-point functions |
| 2 | +? "Start" |
| 3 | +A%=VAL("-0.123") : ? A% |
| 4 | +A%=VAL("1E+10") : ? A% |
| 5 | +A%=12.45 : B=INT(A%) : ? ERR(),B |
| 6 | +A%=12.50 : B=INT(A%) : ? ERR(),B |
| 7 | +A%=-12.45 : B=INT(A%) : ? ERR(),B |
| 8 | +A%=-12.50 : B=INT(A%) : ? ERR(),B |
| 9 | +A%=32767.0 : B=INT(A%) : ? ERR(),B |
| 10 | +A%=32767.5 : B=INT(A%) : ? ERR(),B |
| 11 | +A%=65535.5 : B=INT(A%) : ? ERR(),B |
| 12 | + |
| 13 | +A%=8E+97 : A% = A%+2E+97 : X%=0 : @check |
| 14 | +A%=2 : A% = A%^280 : X%=1.94266889E+84 : @check ' Valid |
| 15 | +A%=2 : A% = A%^329 : X%=0 : @check ' Overflow on square |
| 16 | +A%=5 : A% = A%^141 : X%=0 : @check ' Overflow on multiplication |
| 17 | +A%=2 : A% = A%^-30 : X%=9.31322574615E-10 : @check ' Valid small |
| 18 | +A%=2 : A% = A%^-326 : X%=0 : @check ' Underflow -> 0 |
| 19 | +A%=2 : A% = A%^0 : X%=1 : @check ' One |
| 20 | + |
| 21 | +A%=2 : A% = SQR(A%) : X%=1.41421356237 : @check |
| 22 | +A%=-2 : A% = SQR(A%) : X%=-2 : @check |
| 23 | +A%=0 : A% = SQR(A%) : X%=0 : @check |
| 24 | + |
| 25 | +' Many random numbers |
| 26 | +FOR I=0 TO 199 : A%=RND() : IF A%<0 OR A%>=1 THEN EXIT : NEXT |
| 27 | +? I |
| 28 | + |
| 29 | +DEG |
| 30 | +A%=ATN(1) : X%=45 : @check |
| 31 | +A%=SIN(1) : X%=.01745240643728 : @check |
| 32 | +A%=SIN(-1) : X%=-.01745240643728 : @check |
| 33 | +A%=COS(1) : X%=.99984769515639 : @check |
| 34 | +A%=COS(-1) : X%=.99984769515639 : @check |
| 35 | +A%=COS(1E12) : X%=0 : @check ' Arg too big |
| 36 | +RAD |
| 37 | +A%=ATN(1) : X%=.78539816339 : @check |
| 38 | +A%=SIN(1) : X%=.841470984807896: @check |
| 39 | +A%=SIN(-1) : X%=-.841470984807896: @check |
| 40 | +A%=COS(1) : X%=.54030230586814 : @check |
| 41 | +A%=COS(-1) : X%=.54030230586814 : @check |
| 42 | +A%=COS(1234) : X%=-.798549 : @check |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | + |
| 47 | +PROC check |
| 48 | + ? ERR(), |
| 49 | + X% = (A% - X%)/X% |
| 50 | + IF X% < -0.000001 OR X% > 0.000001 |
| 51 | + ? "BAD", A% |
| 52 | + ELSE |
| 53 | + ? "OK" |
| 54 | + ENDIF |
| 55 | +ENDPROC |
0 commit comments