| #eval "Nat" | |
| #eval 0x17 &&& 0xf == 0x7 | |
| #eval 0x17 ||| 0xf == 0x1f | |
| #eval 0x17 ^^^ 0xf == 0x18 | |
| #eval 0x12 <<< 4 == 0x120 | |
| #eval 0x12 >>> 4 == 0x1 | |
| -- Expected failure | |
| -- #eval 1 ^ (2 ^ 32) | |
| -- Edge case testing | |
| #eval 0 <<< 2^32 == 0 | |
| -- Expected failures | |
| --#eval 1 <<< 2^32 | |
| --#eval (1 <<< 2^31 <<< 2^31 >>> 2^32) | |
| #eval "UInt8" | |
| #eval 0x117 &&& (0x1ff : UInt8) == 0x17 | |
| #eval 0x17 ||| (0x10f : UInt8) == 0x1f | |
| #eval 0x17 ^^^ (0x10f : UInt8) == 0x18 | |
| #eval (0x12 : UInt8) <<< 4 == 0x120 | |
| #eval (0x12 : UInt8) >>> 4 == 0x1 | |
| #eval (1 : UInt8) <<< 8 == 1 | |
| #eval (1 : UInt8) <<< 32 == 1 | |
| #eval (0x81 : UInt8) <<< 9 == 0x2 | |
| #eval (1 : UInt8) >>> 8 == 1 | |
| #eval (1 : UInt8) >>> 32 == 1 | |
| #eval (0x81 : UInt8) >>> 9 == 0x40 | |
| #eval ~~~(0x12 : UInt8) == 0xed | |
| #eval "UInt16" | |
| #eval 0x117 &&& (0x101ff : UInt16) == 0x117 | |
| #eval 0x17 ||| (0x1010f : UInt16) == 0x011f | |
| #eval 0x17 ^^^ (0x1010f : UInt16) == 0x0118 | |
| #eval (0x12 : UInt16) <<< 4 == 0x120 | |
| #eval (0x12 : UInt16) >>> 4 == 0x1 | |
| #eval (1 : UInt16) <<< 16 == 1 | |
| #eval (1 : UInt16) <<< 32 == 1 | |
| #eval (0x8001 : UInt16) <<< 17 == 0x2 | |
| #eval (1 : UInt16) >>> 16 == 1 | |
| #eval (1 : UInt16) >>> 32 == 1 | |
| #eval (0x8001 : UInt16) >>> 17 == 0x4000 | |
| #eval ~~~(0x12 : UInt16) == 0xffed | |
| #eval "UInt32" | |
| #eval 0x117 &&& (0x101ff : UInt32) == 0x117 | |
| #eval 0x17 ||| (0x1010f : UInt32) == 0x1011f | |
| #eval 0x17 ^^^ (0x1010f : UInt32) == 0x10118 | |
| #eval (0x12 : UInt32) <<< 4 == 0x120 | |
| #eval (0x12 : UInt32) >>> 4 == 0x1 | |
| #eval (1 : UInt32) <<< 32 == 1 | |
| #eval (0x80000001 : UInt32) <<< 33 == 0x2 | |
| #eval (1 : UInt32) >>> 32 == 1 | |
| #eval (0x80000001 : UInt32) >>> 33 == 0x40000000 | |
| #eval ~~~(0x12 : UInt32) == 0xffffffed | |
| #eval "UInt64" | |
| #eval 0x117 &&& (0x101ff : UInt64) == 0x117 | |
| #eval 0x17 ||| (0x1010f : UInt64) == 0x1011f | |
| #eval 0x17 ^^^ (0x1010f : UInt64) == 0x10118 | |
| #eval (0x12 : UInt64) <<< 4 == 0x120 | |
| #eval (0x12 : UInt64) >>> 4 == 0x1 | |
| #eval (1 : UInt64) <<< 64 == 1 | |
| #eval (0x8000000000000001 : UInt64) <<< 65 == 0x2 | |
| #eval (1 : UInt64) >>> 64 == 1 | |
| #eval (0x8000000000000001 : UInt64) >>> 65 == 0x4000000000000000 | |
| #eval ~~~(0x12 : UInt64) == 0xffffffffffffffed | |
| #eval "USize" | |
| #eval 0x117 &&& (0x101ff : USize) == 0x117 | |
| #eval 0x17 ||| (0x1010f : USize) == 0x1011f | |
| #eval 0x17 ^^^ (0x1010f : USize) == 0x10118 | |
| #eval (0x12 : USize) <<< 4 == 0x120 | |
| #eval (0x12 : USize) >>> 4 == 0x1 | |
| #eval (1 : USize) <<< 64 == 1 | |
| #eval (1 : USize) >>> 64 == 1 | |
| #eval ~~~(0x12 : USize) == (if System.Platform.numBits == 32 then 0xffffffed else 0xffffffffffffffed) |