rpn/test/050-real.md
2022-02-28 15:35:59 +01:00

5.9 KiB

REAL

default del

real decimal

1

-> stack size should be 1

-> stack should be 1

del

real decimal (2)

2.345

-> stack should be 2.345

del

real decimal (3)

1 2.345 3 4.9

-> stack size should be 4

-> stack should be 1, 2.345, 3, 4.9

del

real hex

0x1234 0x10.10

-> stack should be 0x1234, 0x10

del

real hex (2)

0x1.234p+12 0x1.01p+4
dec swap dec swap

-> stack should be 4660, 16.0625

del

real hex (3)

0x12.345 4 fix

-> stack should be 0x1.2345p+4

4 sci

-> stack should be 0x1.2345p+4

2 fix

-> stack should be 0x1.23p+4

8 fix

-> stack should be 0x1.23450000p+4

del default

real hex (4)

0x0.0001234

-> stack should be 0x0

7 fix

-> stack should be 0x1.2340000p-16

7 sci

-> stack should be 0x1.2340000p-16

2 fix

-> stack should be 0x1.23p-16

del default

real binary

0b11001100

-> stack should be 0b11001100

del

real binary (2)

0b11.001 4 fix

-> stack should be 1.1001p+1

4 sci

-> stack should be 1.1001p+1

2 fix

-> stack should be 1.10p+1

8 fix

-> stack should be 1.10010000p+1

del default

real binary (3)

0b0.0001101

-> stack should be 0b0

7 fix

-> stack should be 1.1010000p-4

7 sci

-> stack should be 1.1010000p-4

2 fix

-> stack should be 1.10p-4

del default

real inf, nan

inf
@inf@
+inf
+@inf@
-inf
-@inf@
nan
@nan@

-> stack should be inf, inf, inf, inf, -inf, -inf, nan, nan

del

prec (1)

default
56 prec
pi

-> stack should be 3.141592653589793

del

prec (2)

default
100 prec
pi

-> stack should be 3.14159265358979323846264338328

del

prec error (1)

0 prec

-> error should be 4

del

prec error (2)

0x8000000000000000 prec

-> error should be 4

del default

round (1)

"nearest (even)" round

-> error should be 0

del

round (2)

"toward zero" round

-> error should be 0

del

round (3)

"toward +inf" round

-> error should be 0

del

round (4)

"toward -inf" round

-> error should be 0

del

round (5)

"away from zero" round

-> error should be 0

del

round (6)

"faithful rounding" round

-> error should be 0

del

round (7)

"nearest (away from zero)" round

-> error should be 0

del

round error

round

-> error should be 2

del default

add (1)

1.2 2.3 +

-> stack should be 3.5

del

add (2)

2.3 +

-> error should be 2

-> stack size should be 1

del

add (3)

+

-> error should be 2

del

sub (1)

1.2 2.3 -

-> stack should be -1.1

del

sub (2)

2.3 -

-> error should be 2

-> stack size should be 1

del

sub (3)

-

-> error should be 2

del

mul (1)

1.2 2.3 *

-> stack should be 2.76

del

mul (2)

2.3 *

-> error should be 2

-> stack size should be 1

del

mul (3)

*

-> error should be 2

del

div (1)

1.2 2.3 /

-> stack should be 0.52173913043478260869565217391304347826

del

div (2)

2.3 /

-> error should be 2

-> stack size should be 1

del

div (3)

/

-> error should be 2

del

chs (1)

3.14 chs

-> stack should be -3.14

del

chs (2)

chs

-> error should be 2

neg (1)

3.14 neg

-> stack should be -3.14

del

neg (2)

neg

-> error should be 2

inv (1)

2 inv

-> stack should be 0.5

del

inv (2)

inv

-> error should be 2

% (1)

2 30 %

-> stack should be 0.6

del

% (2)

2 %

-> error should be 2

-> stack size should be 1

del

% (3)

%

-> error should be 2

del

%CH (1)

2 0.6 %CH

-> stack should be 30

del

%CH (2)

2 %CH

-> error should be 2

-> stack size should be 1

del

%CH (3)

%CH

-> error should be 2

del

^ (1)

2 10 ^

-> stack should be 1024

del

^ (2)

2 ^

-> error should be 2

-> stack size should be 1

del

^ (3)

^

-> error should be 2

del

sqrt (1)

9 sqrt

-> stack should be 3

del

sqrt (2)

sqrt

-> error should be 2

sq (1)

12 sq

-> stack should be 144

del

sq (2)

sq

-> error should be 2

mod (1)

9 4 mod

-> stack should be 1

del

mod (2)

9 mod

-> error should be 2

-> stack size should be 1

del

mod (3)

mod

-> error should be 2

del

abs (1)

-9 abs

-> stack should be 9

del

abs (2)

9 abs

-> stack should be 9

del

abs (3)

abs

-> error should be 2

del

fact (1)

6 fact

-> stack should be 720

del

fact (2)

'r' fact

-> error should be 3

-> stack size should be 1

del

fact (3)

fact

-> error should be 2

del

sign (1)

23 sign -34 sign 0 sign

-> stack should be 1, -1, 0

del

sign (2)

sign

-> error should be 2

del

mant (1)

123.456 mant -123.456 mant 0 mant

-> stack should be 0.9645, -0.9645, 0

del

mant (2)

inf mant

-> error should be 4

-inf mant

-> error should be 4

nan mant

-> error should be 4

del

xpon (1)

123.456 xpon -123.456 xpon 0 mant

-> stack should be 7, 7, 0

del

xpon (2)

inf xpon

-> error should be 4

-inf xpon

-> error should be 4

nan xpon

-> error should be 4

del

min (1)

1 2 min 4 3 min

-> stack should be 1, 3

del

min (2)

'a' 'g' min

-> error should be 3

del

min (3)

1 min

-> error should be 2

del

min (4)

min

-> error should be 2

del

max (1)

1 2 max 4 3 max

-> stack should be 2, 4

del

max (2)

'a' 'g' max

-> error should be 3

del

max (3)

1 max

-> error should be 2

del

max (4)

max

-> error should be 2

del

ip (1)

1.22 ip

-> stack should be 1

del

ip (2)

-1.22 ip

-> stack should be -1

del

fp (1)

1.22 fp

-> stack should be 0.22

del

fp (2)

-1.22 fp

-> stack should be -0.22

del

floor (1)

1.22 floor

-> stack should be 1

del

floor (2)

-1.22 floor

-> stack should be -2

del

ceil (1)

1.22 ceil

-> stack should be 2

del

ceil (2)

-1.22 ceil

-> stack should be -1

del default