rpn/test/06-real.txt
2017-05-29 13:47:34 +02:00

305 lines
3.1 KiB
Text

## REAL representation
default erase
# real decimal
1
-> stack size should be 1
-> stack should be 1
drop
# real decimal (2)
2.345
-> stack should be 2.345
erase
# real decimal (3)
1 2.345 3 4.9
-> stack size should be 4
-> stack should be 1, 2.345, 3, 4.9
erase
# real hex
0x1234 0x10.10
-> stack should be 0x1.234p+12, 0x1.01p+4
# real hex (2)
dec swap dec swap
-> stack should be 4660, 16.0625
erase
# real binary
0b11001100
-> stack should be 204
erase
# real binary (2)
0b11001100.1101
-> stack should be 204.8125
erase
# real inf, nan
inf
@inf@
+inf
+@inf@
-inf
-@inf@
nan
@nan@
-> stack should be inf, inf, inf, inf, -inf, -inf, nan, nan
erase
# prec (1)
default
2 prec pi
-> stack should be 3
drop
# prec (2)
10 prec pi
-> stack should be 3.140625
drop
# prec error (1)
1 prec
-> error should be 4
# prec error (2)
0x8000000000000000 prec
-> error should be 4
erase default
# add (1)
1.2 2.3 +
-> stack should be 3.5
drop
# add (2)
1.2 2.3+
-> stack should be 3.5
drop
# add (3)
2.3 +
-> error should be 2
-> stack size should be 1
drop
# add (4)
+
-> error should be 2
drop
# sub (1)
1.2 2.3 -
-> stack should be -1.1
drop
# sub (2)
1.2 2.3-
-> stack should be -1.1
drop
# sub (3)
2.3 -
-> error should be 2
-> stack size should be 1
drop
# sub (4)
-
-> error should be 2
drop
# mul (1)
1.2 2.3 *
-> stack should be 2.76
drop
# mul (2)
1.2 2.3*
-> stack should be 2.76
drop
# mul (3)
2.3 *
-> error should be 2
-> stack size should be 1
drop
# mul (4)
*
-> error should be 2
drop
# div (1)
1.2 2.3 /
-> stack should be 0.5217391304347826087
drop
# div (2)
1.2 2.3/
-> stack should be 0.5217391304347826087
drop
# div (3)
2.3 /
-> error should be 2
-> stack size should be 1
drop
# div (4)
/
-> error should be 2
drop
# chs (1)
3.14 chs
-> stack should be -3.14
drop
# chs (2)
chs
-> error should be 2
# neg (1)
3.14 neg
-> stack should be -3.14
drop
# neg (2)
neg
-> error should be 2
# inv (1)
2 inv
-> stack should be 0.5
drop
# inv (2)
inv
-> error should be 2
# % (1)
2 30 %
-> stack should be 0.6
erase
# % (2)
2 30%
-> stack should be 0.6
erase
# % (3)
2 %
-> error should be 2
-> stack size should be 1
drop
# % (4)
%
-> error should be 2
drop
# %CH (1)
2 0.6 %CH
-> stack should be 30
erase
# %CH (2)
2 0.6%CH
-> stack should be 30
erase
# %CH (3)
2 %CH
-> error should be 2
-> stack size should be 1
drop
# %CH (4)
%CH
-> error should be 2
drop
# ^ (1)
2 10 ^
-> stack should be 1024
erase
# ^ (2)
2 10^
-> stack should be 1024
erase
# ^ (3)
2 ^
-> error should be 2
-> stack size should be 1
erase
# ^ (4)
^
-> error should be 2
erase
# sqrt (1)
9 sqrt
-> stack should be 3
drop
# sqrt (2)
sqrt
-> error should be 2
# sq (1)
12 sq
-> stack should be 144
drop
# sq (2)
sq
-> error should be 2
# sqr (1)
12 sqr
-> stack should be 144
drop
# sqr (2)
sqr
-> error should be 2
# mod (1)
9 4 mod
-> stack should be 1
erase
# mod (2)
9 mod
-> error should be 2
-> stack size should be 1
erase
# mod (3)
mod
-> error should be 2
erase
# abs (1)
-9 abs
-> stack should be 9
erase
# abs (2)
9 abs
-> stack should be 9
erase
# abs (3)
abs
-> error should be 2
erase
default