Files
mercury/tests/hard_coded/bit_access_uint64.exp
Julien Fischer a52b094e25 Setting and testing individual bits of uint8s, uint16s and uint64s.
library/uint8.m:
library/uint16.m:
library/uint64.m:
    Add functions for setting, clearing, flipping and testing
    the individual bits of a uint8, uint16 and uint64 values.

NEWS:
    Announce the new functions.

tests/hard_coded/Mmakefile:
tests/hard_coded/bit_access_uint{8,16,64}.{m,exp}:
    Add a test case.
2021-04-10 03:21:14 +10:00

136 lines
13 KiB
Plaintext

*** Test operation 'set_bit' ***
set_bit(0000000000000000000000000000000000000000000000000000000000000000, 0 ) = 0000000000000000000000000000000000000000000000000000000000000001
set_bit(0000000000000000000000000000000000000000000000000000000000000000, 1 ) = 0000000000000000000000000000000000000000000000000000000000000010
set_bit(0000000000000000000000000000000000000000000000000000000000000000, 2 ) = 0000000000000000000000000000000000000000000000000000000000000100
set_bit(0000000000000000000000000000000000000000000000000000000000000000, 31) = 0000000000000000000000000000000010000000000000000000000000000000
set_bit(0000000000000000000000000000000000000000000000000000000000000000, 63) = 1000000000000000000000000000000000000000000000000000000000000000
set_bit(0000000000000000000000000000000000000000000000000000000000000000, 64) = <<exception>>
set_bit(1111111111111111111111111111111111111111111111111111111111111111, 0 ) = 1111111111111111111111111111111111111111111111111111111111111111
set_bit(1111111111111111111111111111111111111111111111111111111111111111, 1 ) = 1111111111111111111111111111111111111111111111111111111111111111
set_bit(1111111111111111111111111111111111111111111111111111111111111111, 2 ) = 1111111111111111111111111111111111111111111111111111111111111111
set_bit(1111111111111111111111111111111111111111111111111111111111111111, 31) = 1111111111111111111111111111111111111111111111111111111111111111
set_bit(1111111111111111111111111111111111111111111111111111111111111111, 63) = 1111111111111111111111111111111111111111111111111111111111111111
set_bit(1111111111111111111111111111111111111111111111111111111111111111, 64) = <<exception>>
*** Test operation 'clear_bit' ***
clear_bit(0000000000000000000000000000000000000000000000000000000000000000, 0 ) = 0000000000000000000000000000000000000000000000000000000000000000
clear_bit(0000000000000000000000000000000000000000000000000000000000000000, 1 ) = 0000000000000000000000000000000000000000000000000000000000000000
clear_bit(0000000000000000000000000000000000000000000000000000000000000000, 2 ) = 0000000000000000000000000000000000000000000000000000000000000000
clear_bit(0000000000000000000000000000000000000000000000000000000000000000, 31) = 0000000000000000000000000000000000000000000000000000000000000000
clear_bit(0000000000000000000000000000000000000000000000000000000000000000, 63) = 0000000000000000000000000000000000000000000000000000000000000000
clear_bit(0000000000000000000000000000000000000000000000000000000000000000, 64) = <<exception>>
clear_bit(1111111111111111111111111111111111111111111111111111111111111111, 0 ) = 1111111111111111111111111111111111111111111111111111111111111110
clear_bit(1111111111111111111111111111111111111111111111111111111111111111, 1 ) = 1111111111111111111111111111111111111111111111111111111111111101
clear_bit(1111111111111111111111111111111111111111111111111111111111111111, 2 ) = 1111111111111111111111111111111111111111111111111111111111111011
clear_bit(1111111111111111111111111111111111111111111111111111111111111111, 31) = 1111111111111111111111111111111101111111111111111111111111111111
clear_bit(1111111111111111111111111111111111111111111111111111111111111111, 63) = 0111111111111111111111111111111111111111111111111111111111111111
clear_bit(1111111111111111111111111111111111111111111111111111111111111111, 64) = <<exception>>
*** Test operation 'flip_bit' ***
flip_bit(0000000000000000000000000000000000000000000000000000000000000000, 0 ) = 0000000000000000000000000000000000000000000000000000000000000001
flip_bit(0000000000000000000000000000000000000000000000000000000000000000, 1 ) = 0000000000000000000000000000000000000000000000000000000000000010
flip_bit(0000000000000000000000000000000000000000000000000000000000000000, 2 ) = 0000000000000000000000000000000000000000000000000000000000000100
flip_bit(0000000000000000000000000000000000000000000000000000000000000000, 31) = 0000000000000000000000000000000010000000000000000000000000000000
flip_bit(0000000000000000000000000000000000000000000000000000000000000000, 63) = 1000000000000000000000000000000000000000000000000000000000000000
flip_bit(0000000000000000000000000000000000000000000000000000000000000000, 64) = <<exception>>
flip_bit(1111111111111111111111111111111111111111111111111111111111111111, 0 ) = 1111111111111111111111111111111111111111111111111111111111111110
flip_bit(1111111111111111111111111111111111111111111111111111111111111111, 1 ) = 1111111111111111111111111111111111111111111111111111111111111101
flip_bit(1111111111111111111111111111111111111111111111111111111111111111, 2 ) = 1111111111111111111111111111111111111111111111111111111111111011
flip_bit(1111111111111111111111111111111111111111111111111111111111111111, 31) = 1111111111111111111111111111111101111111111111111111111111111111
flip_bit(1111111111111111111111111111111111111111111111111111111111111111, 63) = 0111111111111111111111111111111111111111111111111111111111111111
flip_bit(1111111111111111111111111111111111111111111111111111111111111111, 64) = <<exception>>
*** Test operation 'bit_is_set' ***
bit_is_set(0000000000000000000000000000000000000000000000000000000000000000, 0 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000000, 1 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000000, 2 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000000, 31) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000000, 63) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000000, 64) ==> <<exception>>
bit_is_set(0000000000000000000000000000000000000000000000000000000000000001, 0 ) ==> true
bit_is_set(0000000000000000000000000000000000000000000000000000000000000001, 1 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000001, 2 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000001, 31) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000001, 63) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000001, 64) ==> <<exception>>
bit_is_set(0000000000000000000000000000000000000000000000000000000000000010, 0 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000010, 1 ) ==> true
bit_is_set(0000000000000000000000000000000000000000000000000000000000000010, 2 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000010, 31) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000010, 63) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000000010, 64) ==> <<exception>>
bit_is_set(0000000000000000000000000000000000000000000000000000000000001000, 0 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000001000, 1 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000001000, 2 ) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000001000, 31) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000001000, 63) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000000001000, 64) ==> <<exception>>
bit_is_set(0000000000000000000000000000000000000000000000000000000011111111, 0 ) ==> true
bit_is_set(0000000000000000000000000000000000000000000000000000000011111111, 1 ) ==> true
bit_is_set(0000000000000000000000000000000000000000000000000000000011111111, 2 ) ==> true
bit_is_set(0000000000000000000000000000000000000000000000000000000011111111, 31) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000011111111, 63) ==> false
bit_is_set(0000000000000000000000000000000000000000000000000000000011111111, 64) ==> <<exception>>
bit_is_set(0000000000000000000000000000000011111111111111111111111111111111, 0 ) ==> true
bit_is_set(0000000000000000000000000000000011111111111111111111111111111111, 1 ) ==> true
bit_is_set(0000000000000000000000000000000011111111111111111111111111111111, 2 ) ==> true
bit_is_set(0000000000000000000000000000000011111111111111111111111111111111, 31) ==> true
bit_is_set(0000000000000000000000000000000011111111111111111111111111111111, 63) ==> false
bit_is_set(0000000000000000000000000000000011111111111111111111111111111111, 64) ==> <<exception>>
bit_is_set(1111111111111111111111111111111111111111111111111111111111111111, 0 ) ==> true
bit_is_set(1111111111111111111111111111111111111111111111111111111111111111, 1 ) ==> true
bit_is_set(1111111111111111111111111111111111111111111111111111111111111111, 2 ) ==> true
bit_is_set(1111111111111111111111111111111111111111111111111111111111111111, 31) ==> true
bit_is_set(1111111111111111111111111111111111111111111111111111111111111111, 63) ==> true
bit_is_set(1111111111111111111111111111111111111111111111111111111111111111, 64) ==> <<exception>>
*** Test operation 'bit_is_clear' ***
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000000, 0 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000000, 1 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000000, 2 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000000, 31) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000000, 63) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000000, 64) ==> <<exception>>
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000001, 0 ) ==> false
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000001, 1 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000001, 2 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000001, 31) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000001, 63) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000001, 64) ==> <<exception>>
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000010, 0 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000010, 1 ) ==> false
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000010, 2 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000010, 31) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000010, 63) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000000010, 64) ==> <<exception>>
bit_is_clear(0000000000000000000000000000000000000000000000000000000000001000, 0 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000001000, 1 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000001000, 2 ) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000001000, 31) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000001000, 63) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000000001000, 64) ==> <<exception>>
bit_is_clear(0000000000000000000000000000000000000000000000000000000011111111, 0 ) ==> false
bit_is_clear(0000000000000000000000000000000000000000000000000000000011111111, 1 ) ==> false
bit_is_clear(0000000000000000000000000000000000000000000000000000000011111111, 2 ) ==> false
bit_is_clear(0000000000000000000000000000000000000000000000000000000011111111, 31) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000011111111, 63) ==> true
bit_is_clear(0000000000000000000000000000000000000000000000000000000011111111, 64) ==> <<exception>>
bit_is_clear(0000000000000000000000000000000011111111111111111111111111111111, 0 ) ==> false
bit_is_clear(0000000000000000000000000000000011111111111111111111111111111111, 1 ) ==> false
bit_is_clear(0000000000000000000000000000000011111111111111111111111111111111, 2 ) ==> false
bit_is_clear(0000000000000000000000000000000011111111111111111111111111111111, 31) ==> false
bit_is_clear(0000000000000000000000000000000011111111111111111111111111111111, 63) ==> true
bit_is_clear(0000000000000000000000000000000011111111111111111111111111111111, 64) ==> <<exception>>
bit_is_clear(1111111111111111111111111111111111111111111111111111111111111111, 0 ) ==> false
bit_is_clear(1111111111111111111111111111111111111111111111111111111111111111, 1 ) ==> false
bit_is_clear(1111111111111111111111111111111111111111111111111111111111111111, 2 ) ==> false
bit_is_clear(1111111111111111111111111111111111111111111111111111111111111111, 31) ==> false
bit_is_clear(1111111111111111111111111111111111111111111111111111111111111111, 63) ==> false
bit_is_clear(1111111111111111111111111111111111111111111111111111111111111111, 64) ==> <<exception>>