summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib/integer
diff options
context:
space:
mode:
authorDavid Terei <davidterei@gmail.com>2011-07-20 11:09:03 -0700
committerDavid Terei <davidterei@gmail.com>2011-07-20 11:26:35 -0700
commit16514f272fb42af6e9c7674a9bd6c9dce369231f (patch)
treee4f332b45fe65e2a7a2451be5674f887b42bf199 /testsuite/tests/lib/integer
parentebd422aed41048476aa61dd4c520d43becd78682 (diff)
downloadhaskell-16514f272fb42af6e9c7674a9bd6c9dce369231f.tar.gz
Move tests from tests/ghc-regress/* to just tests/*
Diffstat (limited to 'testsuite/tests/lib/integer')
-rw-r--r--testsuite/tests/lib/integer/Makefile3
-rw-r--r--testsuite/tests/lib/integer/all.T3
-rw-r--r--testsuite/tests/lib/integer/integerBits.hs134
-rw-r--r--testsuite/tests/lib/integer/integerBits.stdout2
-rw-r--r--testsuite/tests/lib/integer/integerConversions.hs80
-rw-r--r--testsuite/tests/lib/integer/integerConversions.stdout299
-rw-r--r--testsuite/tests/lib/integer/integerConversions.stdout-ws-64299
7 files changed, 820 insertions, 0 deletions
diff --git a/testsuite/tests/lib/integer/Makefile b/testsuite/tests/lib/integer/Makefile
new file mode 100644
index 0000000000..9101fbd40a
--- /dev/null
+++ b/testsuite/tests/lib/integer/Makefile
@@ -0,0 +1,3 @@
+TOP=../../..
+include $(TOP)/mk/boilerplate.mk
+include $(TOP)/mk/test.mk
diff --git a/testsuite/tests/lib/integer/all.T b/testsuite/tests/lib/integer/all.T
new file mode 100644
index 0000000000..a3568e7606
--- /dev/null
+++ b/testsuite/tests/lib/integer/all.T
@@ -0,0 +1,3 @@
+test('integerBits', normal, compile_and_run, [''])
+test('integerConversions', normal, compile_and_run, [''])
+
diff --git a/testsuite/tests/lib/integer/integerBits.hs b/testsuite/tests/lib/integer/integerBits.hs
new file mode 100644
index 0000000000..d5538dd544
--- /dev/null
+++ b/testsuite/tests/lib/integer/integerBits.hs
@@ -0,0 +1,134 @@
+
+module Main (main) where
+
+import Data.Bits
+
+{-
+Do some bitwise operations on some large numbers.
+These number are designed so that they are likely to exercise all the
+interesting split-up cases for implementations that implement Integer
+as some sort of sequence of roughly word-sized values. They are
+essentially random apart from that.
+-}
+
+px, py, nx, ny :: Integer
+px = 0x03A4B5C281F6E9D7029C3FE81D6A4B75
+nx = -0x03A4B5C281F6E9D7029C3FE81D6A4B75
+py = 0x069AF53C4D1BE728
+ny = -0x069AF53C4D1BE728
+ -- \.. 64 bits ../\.. 64 bits ../
+
+{-
+px = 0 0000001110100100101101011100001010000001111101101110100111010111 0000001010011100001111111110100000011101011010100100101101110101
+py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000011010011010111101010011110001001101000110111110011100101000
+px and py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000001010011000001101010010100000001101000010100100001100100000
+
+px = 0 0000001110100100101101011100001010000001111101101110100111010111 0000001010011100001111111110100000011101011010100100101101110101
+ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111100101100101000010101100001110110010111001000001100011011000
+px and ny = 0 0000001110100100101101011100001010000001111101101110100111010111 0000000000000100000010101100000000010000011000000000100001010000
+
+nx = 1 1111110001011011010010100011110101111110000010010001011000101000 1111110101100011110000000001011111100010100101011011010010001011
+py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000011010011010111101010011110001001101000110111110011100101000
+nx and py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000010000000010110000000001010001000000000100011010010000001000
+
+nx = 1 1111110001011011010010100011110101111110000010010001011000101000 1111110101100011110000000001011111100010100101011011010010001011
+ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111100101100101000010101100001110110010111001000001100011011000
+nx and ny = 1 1111110001011011010010100011110101111110000010010001011000101000 1111100101100001000000000000001110100010100001000001000010001000
+ = neg 0 0000001110100100101101011100001010000001111101101110100111010111 0000011010011110111111111111110001011101011110111110111101111000
+
+px = 0 0000001110100100101101011100001010000001111101101110100111010111 0000001010011100001111111110100000011101011010100100101101110101
+py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000011010011010111101010011110001001101000110111110011100101000
+px or py = 0 0000001110100100101101011100001010000001111101101110100111010111 0000011010011110111111111111110001011101011110111110111101111101
+
+px = 0 0000001110100100101101011100001010000001111101101110100111010111 0000001010011100001111111110100000011101011010100100101101110101
+ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111100101100101000010101100001110110010111001000001100011011000
+px or ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111101111111101001111111110101110111111111011100101101111111101
+ = neg 0 0000000000000000000000000000000000000000000000000000000000000000 0000010000000010110000000001010001000000000100011010010000000011
+
+nx = 1 1111110001011011010010100011110101111110000010010001011000101000 1111110101100011110000000001011111100010100101011011010010001011
+py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000011010011010111101010011110001001101000110111110011100101000
+nx or py = 1 1111110001011011010010100011110101111110000010010001011000101000 1111111111111011111101010011111111101111100111111111011110101011
+ = neg 0 0000001110100100101101011100001010000001111101101110100111010111 0000000000000100000010101100000000010000011000000000100001010101
+
+nx = 1 1111110001011011010010100011110101111110000010010001011000101000 1111110101100011110000000001011111100010100101011011010010001011
+ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111100101100101000010101100001110110010111001000001100011011000
+nx or ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111110101100111110010101101011111110010111101011011110011011011
+ = neg 0 0000000000000000000000000000000000000000000000000000000000000000 0000001010011000001101010010100000001101000010100100001100100101
+
+px = 0 0000001110100100101101011100001010000001111101101110100111010111 0000001010011100001111111110100000011101011010100100101101110101
+py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000011010011010111101010011110001001101000110111110011100101000
+px xor py = 0 0000001110100100101101011100001010000001111101101110100111010111 0000010000000110110010101101010001010000011100011010110001011101
+
+px = 0 0000001110100100101101011100001010000001111101101110100111010111 0000001010011100001111111110100000011101011010100100101101110101
+ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111100101100101000010101100001110110010111001000001100011011000
+px xor ny = 1 1111110001011011010010100011110101111110000010010001011000101000 1111101111111001001101010010101110101111100011100101001110101101
+ = neg 0 0000001110100100101101011100001010000001111101101110100111010111 0000010000000110110010101101010001010000011100011010110001010011
+
+nx = 1 1111110001011011010010100011110101111110000010010001011000101000 1111110101100011110000000001011111100010100101011011010010001011
+py = 0 0000000000000000000000000000000000000000000000000000000000000000 0000011010011010111101010011110001001101000110111110011100101000
+nx xor py = 1 1111110001011011010010100011110101111110000010010001011000101000 1111101111111001001101010010101110101111100011100101001110100011
+ = neg 0 0000001110100100101101011100001010000001111101101110100111010111 0000010000000110110010101101010001010000011100011010110001011101
+
+nx = 1 1111110001011011010010100011110101111110000010010001011000101000 1111110101100011110000000001011111100010100101011011010010001011
+ny = 1 1111111111111111111111111111111111111111111111111111111111111111 1111100101100101000010101100001110110010111001000001100011011000
+nx xor ny = 0 0000001110100100101101011100001010000001111101101110100111010111 0000010000000110110010101101010001010000011100011010110001010011
+
+-}
+
+px_and_py :: Integer
+px_and_py = 0x29835280D0A4320
+
+px_and_ny :: Integer
+px_and_ny = 0x3A4B5C281F6E9D700040AC010600850
+
+nx_and_py :: Integer
+nx_and_py = 0x402C0144011A408
+
+nx_and_ny :: Integer
+nx_and_ny = -0x3A4B5C281F6E9D7069EFFFC5D7BEF78
+
+px_or_py :: Integer
+px_or_py = 0x3A4B5C281F6E9D7069EFFFC5D7BEF7D
+
+px_or_ny :: Integer
+px_or_ny = -0x402C0144011A403
+
+nx_or_py :: Integer
+nx_or_py = -0x3A4B5C281F6E9D700040AC010600855
+
+nx_or_ny :: Integer
+nx_or_ny = -0x29835280D0A4325
+
+px_xor_py :: Integer
+px_xor_py = 0x3A4B5C281F6E9D70406CAD45071AC5D
+
+px_xor_ny :: Integer
+px_xor_ny = -0x3A4B5C281F6E9D70406CAD45071AC53
+
+nx_xor_py :: Integer
+nx_xor_py = -0x3A4B5C281F6E9D70406CAD45071AC5D
+
+nx_xor_ny :: Integer
+nx_xor_ny = 0x3A4B5C281F6E9D70406CAD45071AC53
+
+main :: IO ()
+main = do putStrLn "Start"
+ test "px and py" px_and_py (px .&. py)
+ test "px and ny" px_and_ny (px .&. ny)
+ test "nx and py" nx_and_py (nx .&. py)
+ test "nx and ny" nx_and_ny (nx .&. ny)
+ test "px or py" px_or_py (px .|. py)
+ test "px or ny" px_or_ny (px .|. ny)
+ test "nx or py" nx_or_py (nx .|. py)
+ test "nx or ny" nx_or_ny (nx .|. ny)
+ test "px xor py" px_xor_py (px `xor` py)
+ test "px xor ny" px_xor_ny (px `xor` ny)
+ test "nx xor py" nx_xor_py (nx `xor` py)
+ test "nx xor ny" nx_xor_ny (nx `xor` ny)
+ putStrLn "End"
+
+test :: String -> Integer -> Integer -> IO ()
+test what want got
+ | want == got = return ()
+ | otherwise = print (what, want, got)
+
diff --git a/testsuite/tests/lib/integer/integerBits.stdout b/testsuite/tests/lib/integer/integerBits.stdout
new file mode 100644
index 0000000000..621e83f953
--- /dev/null
+++ b/testsuite/tests/lib/integer/integerBits.stdout
@@ -0,0 +1,2 @@
+Start
+End
diff --git a/testsuite/tests/lib/integer/integerConversions.hs b/testsuite/tests/lib/integer/integerConversions.hs
new file mode 100644
index 0000000000..9b10bbdff2
--- /dev/null
+++ b/testsuite/tests/lib/integer/integerConversions.hs
@@ -0,0 +1,80 @@
+
+module Main (main) where
+
+import Data.Int
+import Data.Word
+
+around :: Integer -> [Integer]
+around i = [i - 2, i - 1, i, i + 1, i + 2]
+
+dump :: Show a => String -> [a] -> IO ()
+dump s xs = do putStrLn "===================================="
+ putStrLn s
+ mapM_ print xs
+
+main :: IO ()
+main = do let xs :: [[Integer]]
+ xs = [around 0,
+ around (2^30),
+ around (2^31),
+ around (2^32),
+ around (2^33),
+ around (2^34),
+ around (2^62),
+ around (2^63),
+ around (2^64),
+ around (2^65),
+ around (2^66),
+ around (-(2^30)),
+ around (-(2^31)),
+ around (-(2^32)),
+ around (-(2^33)),
+ around (-(2^34)),
+ around (-(2^62)),
+ around (-(2^63)),
+ around (-(2^64)),
+ around (-(2^65)),
+ around (-(2^66))]
+ xsInt :: [[Int]]
+ xsInt = map (map fromInteger) xs
+ xsIntInteger :: [[Integer]]
+ xsIntInteger = map (map toInteger) xsInt
+ xsInt32 :: [[Int32]]
+ xsInt32 = map (map fromInteger) xs
+ xsInt32Integer :: [[Integer]]
+ xsInt32Integer = map (map toInteger) xsInt32
+ xsInt64 :: [[Int64]]
+ xsInt64 = map (map fromInteger) xs
+ xsInt64Integer :: [[Integer]]
+ xsInt64Integer = map (map toInteger) xsInt64
+ xsWord :: [[Word]]
+ xsWord = map (map fromInteger) xs
+ xsWordInteger :: [[Integer]]
+ xsWordInteger = map (map toInteger) xsWord
+ xsWord32 :: [[Word32]]
+ xsWord32 = map (map fromInteger) xs
+ xsWord32Integer :: [[Integer]]
+ xsWord32Integer = map (map toInteger) xsWord32
+ xsWord64 :: [[Word64]]
+ xsWord64 = map (map fromInteger) xs
+ xsWord64Integer :: [[Integer]]
+ xsWord64Integer = map (map toInteger) xsWord64
+ dump "xs" xs
+ dump "xsInt" xsInt
+ dump "xsIntInteger" xsIntInteger
+ dump "xsInt32" xsInt32
+ dump "xsInt32Integer" xsInt32Integer
+ dump "xsInt64" xsInt64
+ dump "xsInt64Integer" xsInt64Integer
+ dump "xsWord" xsWord
+ dump "xsWordInteger" xsWordInteger
+ dump "xsWord32" xsWord32
+ dump "xsWord32Integer" xsWord32Integer
+ dump "xsWord64" xsWord64
+ dump "xsWord64Integer" xsWord64Integer
+
+test :: String -> Integer -> Integer -> IO ()
+test what want got
+ | want == got = return ()
+ | otherwise = print (what, want, got)
+
diff --git a/testsuite/tests/lib/integer/integerConversions.stdout b/testsuite/tests/lib/integer/integerConversions.stdout
new file mode 100644
index 0000000000..18af7927e1
--- /dev/null
+++ b/testsuite/tests/lib/integer/integerConversions.stdout
@@ -0,0 +1,299 @@
+====================================
+xs
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,18446744073709551616,18446744073709551617,18446744073709551618]
+[36893488147419103230,36893488147419103231,36893488147419103232,36893488147419103233,36893488147419103234]
+[73786976294838206462,73786976294838206463,73786976294838206464,73786976294838206465,73786976294838206466]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[-9223372036854775810,-9223372036854775809,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-18446744073709551618,-18446744073709551617,-18446744073709551616,-18446744073709551615,-18446744073709551614]
+[-36893488147419103234,-36893488147419103233,-36893488147419103232,-36893488147419103231,-36893488147419103230]
+[-73786976294838206466,-73786976294838206465,-73786976294838206464,-73786976294838206463,-73786976294838206462]
+====================================
+xsInt
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsIntInteger
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt32
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt32Integer
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt64
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt64Integer
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsWord
+[4294967294,4294967295,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[3221225470,3221225471,3221225472,3221225473,3221225474]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+====================================
+xsWordInteger
+[4294967294,4294967295,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[3221225470,3221225471,3221225472,3221225473,3221225474]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+====================================
+xsWord32
+[4294967294,4294967295,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[3221225470,3221225471,3221225472,3221225473,3221225474]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+====================================
+xsWord32Integer
+[4294967294,4294967295,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[3221225470,3221225471,3221225472,3221225473,3221225474]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+====================================
+xsWord64
+[18446744073709551614,18446744073709551615,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744072635809790,18446744072635809791,18446744072635809792,18446744072635809793,18446744072635809794]
+[18446744071562067966,18446744071562067967,18446744071562067968,18446744071562067969,18446744071562067970]
+[18446744069414584318,18446744069414584319,18446744069414584320,18446744069414584321,18446744069414584322]
+[18446744065119617022,18446744065119617023,18446744065119617024,18446744065119617025,18446744065119617026]
+[18446744056529682430,18446744056529682431,18446744056529682432,18446744056529682433,18446744056529682434]
+[13835058055282163710,13835058055282163711,13835058055282163712,13835058055282163713,13835058055282163714]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+====================================
+xsWord64Integer
+[18446744073709551614,18446744073709551615,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744072635809790,18446744072635809791,18446744072635809792,18446744072635809793,18446744072635809794]
+[18446744071562067966,18446744071562067967,18446744071562067968,18446744071562067969,18446744071562067970]
+[18446744069414584318,18446744069414584319,18446744069414584320,18446744069414584321,18446744069414584322]
+[18446744065119617022,18446744065119617023,18446744065119617024,18446744065119617025,18446744065119617026]
+[18446744056529682430,18446744056529682431,18446744056529682432,18446744056529682433,18446744056529682434]
+[13835058055282163710,13835058055282163711,13835058055282163712,13835058055282163713,13835058055282163714]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
diff --git a/testsuite/tests/lib/integer/integerConversions.stdout-ws-64 b/testsuite/tests/lib/integer/integerConversions.stdout-ws-64
new file mode 100644
index 0000000000..9dcd6d98c2
--- /dev/null
+++ b/testsuite/tests/lib/integer/integerConversions.stdout-ws-64
@@ -0,0 +1,299 @@
+====================================
+xs
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,18446744073709551616,18446744073709551617,18446744073709551618]
+[36893488147419103230,36893488147419103231,36893488147419103232,36893488147419103233,36893488147419103234]
+[73786976294838206462,73786976294838206463,73786976294838206464,73786976294838206465,73786976294838206466]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[-9223372036854775810,-9223372036854775809,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-18446744073709551618,-18446744073709551617,-18446744073709551616,-18446744073709551615,-18446744073709551614]
+[-36893488147419103234,-36893488147419103233,-36893488147419103232,-36893488147419103231,-36893488147419103230]
+[-73786976294838206466,-73786976294838206465,-73786976294838206464,-73786976294838206463,-73786976294838206462]
+====================================
+xsInt
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsIntInteger
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt32
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt32Integer
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[2147483646,2147483647,-2147483648,-2147483647,-2147483646]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt64
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsInt64Integer
+[-2,-1,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-1073741826,-1073741825,-1073741824,-1073741823,-1073741822]
+[-2147483650,-2147483649,-2147483648,-2147483647,-2147483646]
+[-4294967298,-4294967297,-4294967296,-4294967295,-4294967294]
+[-8589934594,-8589934593,-8589934592,-8589934591,-8589934590]
+[-17179869186,-17179869185,-17179869184,-17179869183,-17179869182]
+[-4611686018427387906,-4611686018427387905,-4611686018427387904,-4611686018427387903,-4611686018427387902]
+[9223372036854775806,9223372036854775807,-9223372036854775808,-9223372036854775807,-9223372036854775806]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+[-2,-1,0,1,2]
+====================================
+xsWord
+[18446744073709551614,18446744073709551615,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744072635809790,18446744072635809791,18446744072635809792,18446744072635809793,18446744072635809794]
+[18446744071562067966,18446744071562067967,18446744071562067968,18446744071562067969,18446744071562067970]
+[18446744069414584318,18446744069414584319,18446744069414584320,18446744069414584321,18446744069414584322]
+[18446744065119617022,18446744065119617023,18446744065119617024,18446744065119617025,18446744065119617026]
+[18446744056529682430,18446744056529682431,18446744056529682432,18446744056529682433,18446744056529682434]
+[13835058055282163710,13835058055282163711,13835058055282163712,13835058055282163713,13835058055282163714]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+====================================
+xsWordInteger
+[18446744073709551614,18446744073709551615,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744072635809790,18446744072635809791,18446744072635809792,18446744072635809793,18446744072635809794]
+[18446744071562067966,18446744071562067967,18446744071562067968,18446744071562067969,18446744071562067970]
+[18446744069414584318,18446744069414584319,18446744069414584320,18446744069414584321,18446744069414584322]
+[18446744065119617022,18446744065119617023,18446744065119617024,18446744065119617025,18446744065119617026]
+[18446744056529682430,18446744056529682431,18446744056529682432,18446744056529682433,18446744056529682434]
+[13835058055282163710,13835058055282163711,13835058055282163712,13835058055282163713,13835058055282163714]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+====================================
+xsWord32
+[4294967294,4294967295,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[3221225470,3221225471,3221225472,3221225473,3221225474]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+====================================
+xsWord32Integer
+[4294967294,4294967295,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[3221225470,3221225471,3221225472,3221225473,3221225474]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+[4294967294,4294967295,0,1,2]
+====================================
+xsWord64
+[18446744073709551614,18446744073709551615,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744072635809790,18446744072635809791,18446744072635809792,18446744072635809793,18446744072635809794]
+[18446744071562067966,18446744071562067967,18446744071562067968,18446744071562067969,18446744071562067970]
+[18446744069414584318,18446744069414584319,18446744069414584320,18446744069414584321,18446744069414584322]
+[18446744065119617022,18446744065119617023,18446744065119617024,18446744065119617025,18446744065119617026]
+[18446744056529682430,18446744056529682431,18446744056529682432,18446744056529682433,18446744056529682434]
+[13835058055282163710,13835058055282163711,13835058055282163712,13835058055282163713,13835058055282163714]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+====================================
+xsWord64Integer
+[18446744073709551614,18446744073709551615,0,1,2]
+[1073741822,1073741823,1073741824,1073741825,1073741826]
+[2147483646,2147483647,2147483648,2147483649,2147483650]
+[4294967294,4294967295,4294967296,4294967297,4294967298]
+[8589934590,8589934591,8589934592,8589934593,8589934594]
+[17179869182,17179869183,17179869184,17179869185,17179869186]
+[4611686018427387902,4611686018427387903,4611686018427387904,4611686018427387905,4611686018427387906]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744072635809790,18446744072635809791,18446744072635809792,18446744072635809793,18446744072635809794]
+[18446744071562067966,18446744071562067967,18446744071562067968,18446744071562067969,18446744071562067970]
+[18446744069414584318,18446744069414584319,18446744069414584320,18446744069414584321,18446744069414584322]
+[18446744065119617022,18446744065119617023,18446744065119617024,18446744065119617025,18446744065119617026]
+[18446744056529682430,18446744056529682431,18446744056529682432,18446744056529682433,18446744056529682434]
+[13835058055282163710,13835058055282163711,13835058055282163712,13835058055282163713,13835058055282163714]
+[9223372036854775806,9223372036854775807,9223372036854775808,9223372036854775809,9223372036854775810]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]
+[18446744073709551614,18446744073709551615,0,1,2]