mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 09:23:44 +00:00
library/uint.m:
Add (//)/2, (/)/2 and rem/2 for uints.
Add mod/2 and div/2 as synonyms for the above.
tests/hard_coded/uint_arith.m
Enable the division tests.
tests/hard_coded/uint_bitwise.exp*:
Update the expected outputs.
335 lines
7.3 KiB
Plaintext
335 lines
7.3 KiB
Plaintext
*** Test binary operation '+' ***
|
|
|
|
0u + 0u = 0u
|
|
0u + 1u = 1u
|
|
0u + 2u = 2u
|
|
0u + 8u = 8u
|
|
0u + 10u = 10u
|
|
0u + 16u = 16u
|
|
0u + 32u = 32u
|
|
0u + 18446744073709551615u = 18446744073709551615u
|
|
1u + 0u = 1u
|
|
1u + 1u = 2u
|
|
1u + 2u = 3u
|
|
1u + 8u = 9u
|
|
1u + 10u = 11u
|
|
1u + 16u = 17u
|
|
1u + 32u = 33u
|
|
1u + 18446744073709551615u = 0u
|
|
2u + 0u = 2u
|
|
2u + 1u = 3u
|
|
2u + 2u = 4u
|
|
2u + 8u = 10u
|
|
2u + 10u = 12u
|
|
2u + 16u = 18u
|
|
2u + 32u = 34u
|
|
2u + 18446744073709551615u = 1u
|
|
8u + 0u = 8u
|
|
8u + 1u = 9u
|
|
8u + 2u = 10u
|
|
8u + 8u = 16u
|
|
8u + 10u = 18u
|
|
8u + 16u = 24u
|
|
8u + 32u = 40u
|
|
8u + 18446744073709551615u = 7u
|
|
10u + 0u = 10u
|
|
10u + 1u = 11u
|
|
10u + 2u = 12u
|
|
10u + 8u = 18u
|
|
10u + 10u = 20u
|
|
10u + 16u = 26u
|
|
10u + 32u = 42u
|
|
10u + 18446744073709551615u = 9u
|
|
16u + 0u = 16u
|
|
16u + 1u = 17u
|
|
16u + 2u = 18u
|
|
16u + 8u = 24u
|
|
16u + 10u = 26u
|
|
16u + 16u = 32u
|
|
16u + 32u = 48u
|
|
16u + 18446744073709551615u = 15u
|
|
32u + 0u = 32u
|
|
32u + 1u = 33u
|
|
32u + 2u = 34u
|
|
32u + 8u = 40u
|
|
32u + 10u = 42u
|
|
32u + 16u = 48u
|
|
32u + 32u = 64u
|
|
32u + 18446744073709551615u = 31u
|
|
18446744073709551615u + 0u = 18446744073709551615u
|
|
18446744073709551615u + 1u = 0u
|
|
18446744073709551615u + 2u = 1u
|
|
18446744073709551615u + 8u = 7u
|
|
18446744073709551615u + 10u = 9u
|
|
18446744073709551615u + 16u = 15u
|
|
18446744073709551615u + 32u = 31u
|
|
18446744073709551615u + 18446744073709551615u = 18446744073709551614u
|
|
|
|
*** Test binary operation '-' ***
|
|
|
|
0u - 0u = 0u
|
|
0u - 1u = 18446744073709551615u
|
|
0u - 2u = 18446744073709551614u
|
|
0u - 8u = 18446744073709551608u
|
|
0u - 10u = 18446744073709551606u
|
|
0u - 16u = 18446744073709551600u
|
|
0u - 32u = 18446744073709551584u
|
|
0u - 18446744073709551615u = 1u
|
|
1u - 0u = 1u
|
|
1u - 1u = 0u
|
|
1u - 2u = 18446744073709551615u
|
|
1u - 8u = 18446744073709551609u
|
|
1u - 10u = 18446744073709551607u
|
|
1u - 16u = 18446744073709551601u
|
|
1u - 32u = 18446744073709551585u
|
|
1u - 18446744073709551615u = 2u
|
|
2u - 0u = 2u
|
|
2u - 1u = 1u
|
|
2u - 2u = 0u
|
|
2u - 8u = 18446744073709551610u
|
|
2u - 10u = 18446744073709551608u
|
|
2u - 16u = 18446744073709551602u
|
|
2u - 32u = 18446744073709551586u
|
|
2u - 18446744073709551615u = 3u
|
|
8u - 0u = 8u
|
|
8u - 1u = 7u
|
|
8u - 2u = 6u
|
|
8u - 8u = 0u
|
|
8u - 10u = 18446744073709551614u
|
|
8u - 16u = 18446744073709551608u
|
|
8u - 32u = 18446744073709551592u
|
|
8u - 18446744073709551615u = 9u
|
|
10u - 0u = 10u
|
|
10u - 1u = 9u
|
|
10u - 2u = 8u
|
|
10u - 8u = 2u
|
|
10u - 10u = 0u
|
|
10u - 16u = 18446744073709551610u
|
|
10u - 32u = 18446744073709551594u
|
|
10u - 18446744073709551615u = 11u
|
|
16u - 0u = 16u
|
|
16u - 1u = 15u
|
|
16u - 2u = 14u
|
|
16u - 8u = 8u
|
|
16u - 10u = 6u
|
|
16u - 16u = 0u
|
|
16u - 32u = 18446744073709551600u
|
|
16u - 18446744073709551615u = 17u
|
|
32u - 0u = 32u
|
|
32u - 1u = 31u
|
|
32u - 2u = 30u
|
|
32u - 8u = 24u
|
|
32u - 10u = 22u
|
|
32u - 16u = 16u
|
|
32u - 32u = 0u
|
|
32u - 18446744073709551615u = 33u
|
|
18446744073709551615u - 0u = 18446744073709551615u
|
|
18446744073709551615u - 1u = 18446744073709551614u
|
|
18446744073709551615u - 2u = 18446744073709551613u
|
|
18446744073709551615u - 8u = 18446744073709551607u
|
|
18446744073709551615u - 10u = 18446744073709551605u
|
|
18446744073709551615u - 16u = 18446744073709551599u
|
|
18446744073709551615u - 32u = 18446744073709551583u
|
|
18446744073709551615u - 18446744073709551615u = 0u
|
|
|
|
*** Test binary operation '*' ***
|
|
|
|
0u * 0u = 0u
|
|
0u * 1u = 0u
|
|
0u * 2u = 0u
|
|
0u * 8u = 0u
|
|
0u * 10u = 0u
|
|
0u * 16u = 0u
|
|
0u * 32u = 0u
|
|
0u * 18446744073709551615u = 0u
|
|
1u * 0u = 0u
|
|
1u * 1u = 1u
|
|
1u * 2u = 2u
|
|
1u * 8u = 8u
|
|
1u * 10u = 10u
|
|
1u * 16u = 16u
|
|
1u * 32u = 32u
|
|
1u * 18446744073709551615u = 18446744073709551615u
|
|
2u * 0u = 0u
|
|
2u * 1u = 2u
|
|
2u * 2u = 4u
|
|
2u * 8u = 16u
|
|
2u * 10u = 20u
|
|
2u * 16u = 32u
|
|
2u * 32u = 64u
|
|
2u * 18446744073709551615u = 18446744073709551614u
|
|
8u * 0u = 0u
|
|
8u * 1u = 8u
|
|
8u * 2u = 16u
|
|
8u * 8u = 64u
|
|
8u * 10u = 80u
|
|
8u * 16u = 128u
|
|
8u * 32u = 256u
|
|
8u * 18446744073709551615u = 18446744073709551608u
|
|
10u * 0u = 0u
|
|
10u * 1u = 10u
|
|
10u * 2u = 20u
|
|
10u * 8u = 80u
|
|
10u * 10u = 100u
|
|
10u * 16u = 160u
|
|
10u * 32u = 320u
|
|
10u * 18446744073709551615u = 18446744073709551606u
|
|
16u * 0u = 0u
|
|
16u * 1u = 16u
|
|
16u * 2u = 32u
|
|
16u * 8u = 128u
|
|
16u * 10u = 160u
|
|
16u * 16u = 256u
|
|
16u * 32u = 512u
|
|
16u * 18446744073709551615u = 18446744073709551600u
|
|
32u * 0u = 0u
|
|
32u * 1u = 32u
|
|
32u * 2u = 64u
|
|
32u * 8u = 256u
|
|
32u * 10u = 320u
|
|
32u * 16u = 512u
|
|
32u * 32u = 1024u
|
|
32u * 18446744073709551615u = 18446744073709551584u
|
|
18446744073709551615u * 0u = 0u
|
|
18446744073709551615u * 1u = 18446744073709551615u
|
|
18446744073709551615u * 2u = 18446744073709551614u
|
|
18446744073709551615u * 8u = 18446744073709551608u
|
|
18446744073709551615u * 10u = 18446744073709551606u
|
|
18446744073709551615u * 16u = 18446744073709551600u
|
|
18446744073709551615u * 32u = 18446744073709551584u
|
|
18446744073709551615u * 18446744073709551615u = 1u
|
|
|
|
*** Test binary operation '/' ***
|
|
|
|
0u / 0u = <<exception>>
|
|
0u / 1u = 0u
|
|
0u / 2u = 0u
|
|
0u / 8u = 0u
|
|
0u / 10u = 0u
|
|
0u / 16u = 0u
|
|
0u / 32u = 0u
|
|
0u / 18446744073709551615u = 0u
|
|
1u / 0u = <<exception>>
|
|
1u / 1u = 1u
|
|
1u / 2u = 0u
|
|
1u / 8u = 0u
|
|
1u / 10u = 0u
|
|
1u / 16u = 0u
|
|
1u / 32u = 0u
|
|
1u / 18446744073709551615u = 0u
|
|
2u / 0u = <<exception>>
|
|
2u / 1u = 2u
|
|
2u / 2u = 1u
|
|
2u / 8u = 0u
|
|
2u / 10u = 0u
|
|
2u / 16u = 0u
|
|
2u / 32u = 0u
|
|
2u / 18446744073709551615u = 0u
|
|
8u / 0u = <<exception>>
|
|
8u / 1u = 8u
|
|
8u / 2u = 4u
|
|
8u / 8u = 1u
|
|
8u / 10u = 0u
|
|
8u / 16u = 0u
|
|
8u / 32u = 0u
|
|
8u / 18446744073709551615u = 0u
|
|
10u / 0u = <<exception>>
|
|
10u / 1u = 10u
|
|
10u / 2u = 5u
|
|
10u / 8u = 1u
|
|
10u / 10u = 1u
|
|
10u / 16u = 0u
|
|
10u / 32u = 0u
|
|
10u / 18446744073709551615u = 0u
|
|
16u / 0u = <<exception>>
|
|
16u / 1u = 16u
|
|
16u / 2u = 8u
|
|
16u / 8u = 2u
|
|
16u / 10u = 1u
|
|
16u / 16u = 1u
|
|
16u / 32u = 0u
|
|
16u / 18446744073709551615u = 0u
|
|
32u / 0u = <<exception>>
|
|
32u / 1u = 32u
|
|
32u / 2u = 16u
|
|
32u / 8u = 4u
|
|
32u / 10u = 3u
|
|
32u / 16u = 2u
|
|
32u / 32u = 1u
|
|
32u / 18446744073709551615u = 0u
|
|
18446744073709551615u / 0u = <<exception>>
|
|
18446744073709551615u / 1u = 18446744073709551615u
|
|
18446744073709551615u / 2u = 9223372036854775807u
|
|
18446744073709551615u / 8u = 2305843009213693951u
|
|
18446744073709551615u / 10u = 1844674407370955161u
|
|
18446744073709551615u / 16u = 1152921504606846975u
|
|
18446744073709551615u / 32u = 576460752303423487u
|
|
18446744073709551615u / 18446744073709551615u = 1u
|
|
|
|
*** Test binary operation 'rem' ***
|
|
|
|
0u rem 0u = <<exception>>
|
|
0u rem 1u = 0u
|
|
0u rem 2u = 0u
|
|
0u rem 8u = 0u
|
|
0u rem 10u = 0u
|
|
0u rem 16u = 0u
|
|
0u rem 32u = 0u
|
|
0u rem 18446744073709551615u = 0u
|
|
1u rem 0u = <<exception>>
|
|
1u rem 1u = 0u
|
|
1u rem 2u = 1u
|
|
1u rem 8u = 1u
|
|
1u rem 10u = 1u
|
|
1u rem 16u = 1u
|
|
1u rem 32u = 1u
|
|
1u rem 18446744073709551615u = 1u
|
|
2u rem 0u = <<exception>>
|
|
2u rem 1u = 0u
|
|
2u rem 2u = 0u
|
|
2u rem 8u = 2u
|
|
2u rem 10u = 2u
|
|
2u rem 16u = 2u
|
|
2u rem 32u = 2u
|
|
2u rem 18446744073709551615u = 2u
|
|
8u rem 0u = <<exception>>
|
|
8u rem 1u = 0u
|
|
8u rem 2u = 0u
|
|
8u rem 8u = 0u
|
|
8u rem 10u = 8u
|
|
8u rem 16u = 8u
|
|
8u rem 32u = 8u
|
|
8u rem 18446744073709551615u = 8u
|
|
10u rem 0u = <<exception>>
|
|
10u rem 1u = 0u
|
|
10u rem 2u = 0u
|
|
10u rem 8u = 2u
|
|
10u rem 10u = 0u
|
|
10u rem 16u = 10u
|
|
10u rem 32u = 10u
|
|
10u rem 18446744073709551615u = 10u
|
|
16u rem 0u = <<exception>>
|
|
16u rem 1u = 0u
|
|
16u rem 2u = 0u
|
|
16u rem 8u = 0u
|
|
16u rem 10u = 6u
|
|
16u rem 16u = 0u
|
|
16u rem 32u = 16u
|
|
16u rem 18446744073709551615u = 16u
|
|
32u rem 0u = <<exception>>
|
|
32u rem 1u = 0u
|
|
32u rem 2u = 0u
|
|
32u rem 8u = 0u
|
|
32u rem 10u = 2u
|
|
32u rem 16u = 0u
|
|
32u rem 32u = 0u
|
|
32u rem 18446744073709551615u = 32u
|
|
18446744073709551615u rem 0u = <<exception>>
|
|
18446744073709551615u rem 1u = 0u
|
|
18446744073709551615u rem 2u = 1u
|
|
18446744073709551615u rem 8u = 7u
|
|
18446744073709551615u rem 10u = 5u
|
|
18446744073709551615u rem 16u = 15u
|
|
18446744073709551615u rem 32u = 31u
|
|
18446744073709551615u rem 18446744073709551615u = 0u
|