1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-01 15:00:38 +00:00

Update rotation test to include more cases

This commit is contained in:
Samuel Gomes 2022-09-02 10:15:07 +05:30
parent a2cd317d6a
commit 4d4692314e
2 changed files with 159 additions and 16 deletions

View file

@ -11,30 +11,113 @@ b = &B1111111100000000
c = &B11111111111111110000000000000000
d = &B1111111111111111111111111111111100000000000000000000000000000000
PRINT "*** Unsigned values ***"
PRINT a; ":"; _BIN$(a)
PRINT b; ":"; _BIN$(b)
PRINT c; ":"; _BIN$(c)
PRINT d; ":"; _BIN$(d)
PRINT _ROL(a, 1); ":"; _BIN$(_ROL(a, 1))
PRINT _ROL(b, 1); ":"; _BIN$(_ROL(b, 1))
PRINT _ROL(c, 1); ":"; _BIN$(_ROL(c, 1))
PRINT _ROL(d, 1); ":"; _BIN$(_ROL(d, 1))
PRINT "Rotating left by 5"
PRINT _ROL(a, 1); ":"; _BIN$(_ROL(a, 5))
PRINT _ROL(b, 1); ":"; _BIN$(_ROL(b, 5))
PRINT _ROL(c, 1); ":"; _BIN$(_ROL(c, 5))
PRINT _ROL(d, 1); ":"; _BIN$(_ROL(d, 5))
PRINT _ROR(a, 1); ":"; _BIN$(_ROR(a, 1))
PRINT _ROR(b, 1); ":"; _BIN$(_ROR(b, 1))
PRINT _ROR(c, 1); ":"; _BIN$(_ROR(c, 1))
PRINT _ROR(d, 1); ":"; _BIN$(_ROR(d, 1))
PRINT "Rotating right by 5"
PRINT _ROR(a, 1); ":"; _BIN$(_ROR(a, 5))
PRINT _ROR(b, 1); ":"; _BIN$(_ROR(b, 5))
PRINT _ROR(c, 1); ":"; _BIN$(_ROR(c, 5))
PRINT _ROR(d, 1); ":"; _BIN$(_ROR(d, 5))
PRINT a; ":"; _BIN$(_ROL(240~%%, 5))
PRINT b; ":"; _BIN$(_ROL(65280~%, 5))
PRINT c; ":"; _BIN$(_ROL(4294901760~&, 5))
PRINT d; ":"; _BIN$(_ROL(18446744069414584320~&&, 5))
PRINT "Rotating left past size"
PRINT _ROL(a, 1); ":"; _BIN$(_ROL(a, 9))
PRINT _ROL(b, 1); ":"; _BIN$(_ROL(b, 17))
PRINT _ROL(c, 1); ":"; _BIN$(_ROL(c, 33))
PRINT _ROL(d, 1); ":"; _BIN$(_ROL(d, 65))
PRINT a; ":"; _BIN$(_ROR(240~%%, 5))
PRINT b; ":"; _BIN$(_ROR(65280~%, 5))
PRINT c; ":"; _BIN$(_ROR(4294901760~&, 5))
PRINT d; ":"; _BIN$(_ROR(18446744069414584320~&&, 5))
PRINT "Rotating right past size"
PRINT _ROR(a, 1); ":"; _BIN$(_ROR(a, 9))
PRINT _ROR(b, 1); ":"; _BIN$(_ROR(b, 17))
PRINT _ROR(c, 1); ":"; _BIN$(_ROR(c, 33))
PRINT _ROR(d, 1); ":"; _BIN$(_ROR(d, 65))
PRINT "Rotating left by -5"
PRINT _ROL(a, 1); ":"; _BIN$(_ROL(a, -5))
PRINT _ROL(b, 1); ":"; _BIN$(_ROL(b, -5))
PRINT _ROL(c, 1); ":"; _BIN$(_ROL(c, -5))
PRINT _ROL(d, 1); ":"; _BIN$(_ROL(d, -5))
PRINT "Rotating right by -5"
PRINT _ROR(a, 1); ":"; _BIN$(_ROR(a, -5))
PRINT _ROR(b, 1); ":"; _BIN$(_ROR(b, -5))
PRINT _ROR(c, 1); ":"; _BIN$(_ROR(c, -5))
PRINT _ROR(d, 1); ":"; _BIN$(_ROR(d, -5))
DIM e AS _BYTE
DIM f AS INTEGER
DIM g AS LONG
DIM h AS _INTEGER64
e = -128
f = -32768
g = -2147483648
h = -9223372036854775808
PRINT "*** Signed values ***"
PRINT e; ":"; _BIN$(e)
PRINT f; ":"; _BIN$(f)
PRINT g; ":"; _BIN$(g)
PRINT h; ":"; _BIN$(h)
PRINT "Rotating left by 5"
PRINT _ROL(e, 1); ":"; _BIN$(_ROL(e, 5))
PRINT _ROL(f, 1); ":"; _BIN$(_ROL(f, 5))
PRINT _ROL(g, 1); ":"; _BIN$(_ROL(g, 5))
PRINT _ROL(h, 1); ":"; _BIN$(_ROL(h, 5))
PRINT "Rotating right by 5"
PRINT _ROR(e, 1); ":"; _BIN$(_ROR(e, 5))
PRINT _ROR(f, 1); ":"; _BIN$(_ROR(f, 5))
PRINT _ROR(g, 1); ":"; _BIN$(_ROR(g, 5))
PRINT _ROR(h, 1); ":"; _BIN$(_ROR(h, 5))
PRINT "Rotating left past size"
PRINT _ROL(e, 1); ":"; _BIN$(_ROL(e, 9))
PRINT _ROL(f, 1); ":"; _BIN$(_ROL(f, 17))
PRINT _ROL(g, 1); ":"; _BIN$(_ROL(g, 33))
PRINT _ROL(h, 1); ":"; _BIN$(_ROL(h, 65))
PRINT "Rotating right past size"
PRINT _ROR(e, 1); ":"; _BIN$(_ROR(e, 9))
PRINT _ROR(f, 1); ":"; _BIN$(_ROR(f, 17))
PRINT _ROR(g, 1); ":"; _BIN$(_ROR(g, 33))
PRINT _ROR(h, 1); ":"; _BIN$(_ROR(h, 65))
PRINT "Rotating left by -5"
PRINT _ROL(e, 1); ":"; _BIN$(_ROL(e, -5))
PRINT _ROL(f, 1); ":"; _BIN$(_ROL(f, -5))
PRINT _ROL(g, 1); ":"; _BIN$(_ROL(g, -5))
PRINT _ROL(h, 1); ":"; _BIN$(_ROL(h, -5))
PRINT "Rotating right by -5"
PRINT _ROR(e, 1); ":"; _BIN$(_ROR(e, -5))
PRINT _ROR(f, 1); ":"; _BIN$(_ROR(f, -5))
PRINT _ROR(g, 1); ":"; _BIN$(_ROR(g, -5))
PRINT _ROR(h, 1); ":"; _BIN$(_ROR(h, -5))
PRINT "*** Rotating some numeric literals left by 5 ***"
PRINT 240~%%; ":"; _BIN$(_ROL(240~%%, 5))
PRINT 65280~%; ":"; _BIN$(_ROL(65280~%, 5))
PRINT 4294901760~&; ":"; _BIN$(_ROL(4294901760~&, 5))
PRINT 18446744069414584320~&&; ":"; _BIN$(_ROL(18446744069414584320~&&, 5))
PRINT "*** Rotating some numeric literals right by 5 ***"
PRINT 240~%%; ":"; _BIN$(_ROR(240~%%, 5))
PRINT 65280~%; ":"; _BIN$(_ROR(65280~%, 5))
PRINT 4294901760~&; ":"; _BIN$(_ROR(4294901760~&, 5))
PRINT 18446744069414584320~&&; ":"; _BIN$(_ROR(18446744069414584320~&&, 5))
SYSTEM

View file

@ -1,19 +1,79 @@
*** Unsigned values ***
240 :11110000
65280 :1111111100000000
4294901760 :11111111111111110000000000000000
18446744069414584320 :1111111111111111111111111111111100000000000000000000000000000000
Rotating left by 5
225 :11110
65025 :1110000000011111
4294836225 :11111111111000000000000000011111
18446744065119617025 :1111111111111111111111111110000000000000000000000000000000011111
Rotating right by 5
120 :10000111
32640 :11111111000
2147450880 :111111111111111100000000000
9223372034707292160 :11111111111111111111111111111111000000000000000000000000000
Rotating left past size
225 :11100001
65025 :1111111000000001
4294836225 :11111111111111100000000000000001
18446744065119617025 :1111111111111111111111111111111000000000000000000000000000000001
Rotating right past size
120 :1111000
32640 :111111110000000
2147450880 :1111111111111111000000000000000
9223372034707292160 :111111111111111111111111111111110000000000000000000000000000000
Rotating left by -5
225 :10000111
65025 :11111111000
4294836225 :111111111111111100000000000
18446744065119617025 :11111111111111111111111111111111000000000000000000000000000
Rotating right by -5
120 :11110
32640 :1110000000011111
2147450880 :11111111111000000000000000011111
9223372034707292160 :1111111111111111111111111110000000000000000000000000000000011111
*** Signed values ***
-128 :10000000
-32768 :1000000000000000
-2147483648 :10000000000000000000000000000000
-9223372036854775808 :1000000000000000000000000000000000000000000000000000000000000000
Rotating left by 5
1 :10000
1 :10000
1 :10000
1 :10000
Rotating right by 5
64 :100
16384 :10000000000
1073741824 :100000000000000000000000000
4611686018427387904 :10000000000000000000000000000000000000000000000000000000000
Rotating left past size
1 :1
1 :1
1 :1
1 :1
Rotating right past size
64 :1000000
16384 :100000000000000
1073741824 :1000000000000000000000000000000
4611686018427387904 :100000000000000000000000000000000000000000000000000000000000000
Rotating left by -5
1 :100
1 :10000000000
1 :100000000000000000000000000
1 :10000000000000000000000000000000000000000000000000000000000
Rotating right by -5
64 :10000
16384 :10000
1073741824 :10000
4611686018427387904 :10000
*** Rotating some numeric literals left by 5 ***
240 :11110
65280 :1110000000011111
4294901760 :11111111111000000000000000011111
18446744069414584320 :1111111111111111111111111110000000000000000000000000000000011111
*** Rotating some numeric literals right by 5 ***
240 :10000111
65280 :11111111000
4294901760 :111111111111111100000000000