Files
mercury/tests/hard_coded/uint_arith.exp2
Julien Fischer 6330b51b61 Implement checked division for uints.
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.
2017-05-12 21:59:36 +10:00

335 lines
6.0 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 + 4294967295u = 4294967295u
1u + 0u = 1u
1u + 1u = 2u
1u + 2u = 3u
1u + 8u = 9u
1u + 10u = 11u
1u + 16u = 17u
1u + 32u = 33u
1u + 4294967295u = 0u
2u + 0u = 2u
2u + 1u = 3u
2u + 2u = 4u
2u + 8u = 10u
2u + 10u = 12u
2u + 16u = 18u
2u + 32u = 34u
2u + 4294967295u = 1u
8u + 0u = 8u
8u + 1u = 9u
8u + 2u = 10u
8u + 8u = 16u
8u + 10u = 18u
8u + 16u = 24u
8u + 32u = 40u
8u + 4294967295u = 7u
10u + 0u = 10u
10u + 1u = 11u
10u + 2u = 12u
10u + 8u = 18u
10u + 10u = 20u
10u + 16u = 26u
10u + 32u = 42u
10u + 4294967295u = 9u
16u + 0u = 16u
16u + 1u = 17u
16u + 2u = 18u
16u + 8u = 24u
16u + 10u = 26u
16u + 16u = 32u
16u + 32u = 48u
16u + 4294967295u = 15u
32u + 0u = 32u
32u + 1u = 33u
32u + 2u = 34u
32u + 8u = 40u
32u + 10u = 42u
32u + 16u = 48u
32u + 32u = 64u
32u + 4294967295u = 31u
4294967295u + 0u = 4294967295u
4294967295u + 1u = 0u
4294967295u + 2u = 1u
4294967295u + 8u = 7u
4294967295u + 10u = 9u
4294967295u + 16u = 15u
4294967295u + 32u = 31u
4294967295u + 4294967295u = 4294967294u
*** Test binary operation '-' ***
0u - 0u = 0u
0u - 1u = 4294967295u
0u - 2u = 4294967294u
0u - 8u = 4294967288u
0u - 10u = 4294967286u
0u - 16u = 4294967280u
0u - 32u = 4294967264u
0u - 4294967295u = 1u
1u - 0u = 1u
1u - 1u = 0u
1u - 2u = 4294967295u
1u - 8u = 4294967289u
1u - 10u = 4294967287u
1u - 16u = 4294967281u
1u - 32u = 4294967265u
1u - 4294967295u = 2u
2u - 0u = 2u
2u - 1u = 1u
2u - 2u = 0u
2u - 8u = 4294967290u
2u - 10u = 4294967288u
2u - 16u = 4294967282u
2u - 32u = 4294967266u
2u - 4294967295u = 3u
8u - 0u = 8u
8u - 1u = 7u
8u - 2u = 6u
8u - 8u = 0u
8u - 10u = 4294967294u
8u - 16u = 4294967288u
8u - 32u = 4294967272u
8u - 4294967295u = 9u
10u - 0u = 10u
10u - 1u = 9u
10u - 2u = 8u
10u - 8u = 2u
10u - 10u = 0u
10u - 16u = 4294967290u
10u - 32u = 4294967274u
10u - 4294967295u = 11u
16u - 0u = 16u
16u - 1u = 15u
16u - 2u = 14u
16u - 8u = 8u
16u - 10u = 6u
16u - 16u = 0u
16u - 32u = 4294967280u
16u - 4294967295u = 17u
32u - 0u = 32u
32u - 1u = 31u
32u - 2u = 30u
32u - 8u = 24u
32u - 10u = 22u
32u - 16u = 16u
32u - 32u = 0u
32u - 4294967295u = 33u
4294967295u - 0u = 4294967295u
4294967295u - 1u = 4294967294u
4294967295u - 2u = 4294967293u
4294967295u - 8u = 4294967287u
4294967295u - 10u = 4294967285u
4294967295u - 16u = 4294967279u
4294967295u - 32u = 4294967263u
4294967295u - 4294967295u = 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 * 4294967295u = 0u
1u * 0u = 0u
1u * 1u = 1u
1u * 2u = 2u
1u * 8u = 8u
1u * 10u = 10u
1u * 16u = 16u
1u * 32u = 32u
1u * 4294967295u = 4294967295u
2u * 0u = 0u
2u * 1u = 2u
2u * 2u = 4u
2u * 8u = 16u
2u * 10u = 20u
2u * 16u = 32u
2u * 32u = 64u
2u * 4294967295u = 4294967294u
8u * 0u = 0u
8u * 1u = 8u
8u * 2u = 16u
8u * 8u = 64u
8u * 10u = 80u
8u * 16u = 128u
8u * 32u = 256u
8u * 4294967295u = 4294967288u
10u * 0u = 0u
10u * 1u = 10u
10u * 2u = 20u
10u * 8u = 80u
10u * 10u = 100u
10u * 16u = 160u
10u * 32u = 320u
10u * 4294967295u = 4294967286u
16u * 0u = 0u
16u * 1u = 16u
16u * 2u = 32u
16u * 8u = 128u
16u * 10u = 160u
16u * 16u = 256u
16u * 32u = 512u
16u * 4294967295u = 4294967280u
32u * 0u = 0u
32u * 1u = 32u
32u * 2u = 64u
32u * 8u = 256u
32u * 10u = 320u
32u * 16u = 512u
32u * 32u = 1024u
32u * 4294967295u = 4294967264u
4294967295u * 0u = 0u
4294967295u * 1u = 4294967295u
4294967295u * 2u = 4294967294u
4294967295u * 8u = 4294967288u
4294967295u * 10u = 4294967286u
4294967295u * 16u = 4294967280u
4294967295u * 32u = 4294967264u
4294967295u * 4294967295u = 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 / 4294967295u = 0u
1u / 0u = <<exception>>
1u / 1u = 1u
1u / 2u = 0u
1u / 8u = 0u
1u / 10u = 0u
1u / 16u = 0u
1u / 32u = 0u
1u / 4294967295u = 0u
2u / 0u = <<exception>>
2u / 1u = 2u
2u / 2u = 1u
2u / 8u = 0u
2u / 10u = 0u
2u / 16u = 0u
2u / 32u = 0u
2u / 4294967295u = 0u
8u / 0u = <<exception>>
8u / 1u = 8u
8u / 2u = 4u
8u / 8u = 1u
8u / 10u = 0u
8u / 16u = 0u
8u / 32u = 0u
8u / 4294967295u = 0u
10u / 0u = <<exception>>
10u / 1u = 10u
10u / 2u = 5u
10u / 8u = 1u
10u / 10u = 1u
10u / 16u = 0u
10u / 32u = 0u
10u / 4294967295u = 0u
16u / 0u = <<exception>>
16u / 1u = 16u
16u / 2u = 8u
16u / 8u = 2u
16u / 10u = 1u
16u / 16u = 1u
16u / 32u = 0u
16u / 4294967295u = 0u
32u / 0u = <<exception>>
32u / 1u = 32u
32u / 2u = 16u
32u / 8u = 4u
32u / 10u = 3u
32u / 16u = 2u
32u / 32u = 1u
32u / 4294967295u = 0u
4294967295u / 0u = <<exception>>
4294967295u / 1u = 4294967295u
4294967295u / 2u = 2147483647u
4294967295u / 8u = 536870911u
4294967295u / 10u = 429496729u
4294967295u / 16u = 268435455u
4294967295u / 32u = 134217727u
4294967295u / 4294967295u = 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 4294967295u = 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 4294967295u = 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 4294967295u = 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 4294967295u = 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 4294967295u = 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 4294967295u = 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 4294967295u = 32u
4294967295u rem 0u = <<exception>>
4294967295u rem 1u = 0u
4294967295u rem 2u = 1u
4294967295u rem 8u = 7u
4294967295u rem 10u = 5u
4294967295u rem 16u = 15u
4294967295u rem 32u = 31u
4294967295u rem 4294967295u = 0u