Files
mercury/tests/hard_coded/read_binary_uint32.exp
Julien Fischer ae90cecc5c Reading multibyte integers from binary file streams.
Add predicates for reading multibyte integers from binary file streams.  As
with the corresponding predicates for writing multibyte integers to binary file
streams, we provide versions for big-endian, little-endian and native byte
orders.

library/io.m:
    Add a new type that represents possibly incomplete results when reading
    from binary file streams.

    Add the new predicates.

tests/hard_coded/Mmakefile:
tests/hard_coded/read_binary_{int,uint}{16,32,64}.{m,exp}:
    Add tests of the new predicates.
2019-01-18 08:38:52 +00:00

64 lines
1.9 KiB
Plaintext

================
Input: []
Result: EOF (read big-endian)
================
Input: [1u8]
Result: Incomplete ([1u8]) (read big-endian)
================
Input: [1u8, 2u8]
Result: Incomplete ([1u8, 2u8]) (read big-endian)
================
Input: [1u8, 2u8, 3u8]
Result: Incomplete ([1u8, 2u8, 3u8]) (read big-endian)
================
Input: [0u8, 0u8, 0u8, 1u8] (LE: 16777216) (BE: 1)
Result: 1u32 (read big-endian)
================
Input: [255u8, 0u8, 0u8, 0u8] (LE: 255) (BE: 4278190080)
Result: 4278190080u32 (read big-endian)
================
Input: [1u8, 1u8, 0u8, 0u8] (LE: 257) (BE: 16842752)
Result: 16842752u32 (read big-endian)
================
Input: []
Result: EOF (read little-endian)
================
Input: [1u8]
Result: Incomplete ([1u8]) (read little-endian)
================
Input: [1u8, 2u8]
Result: Incomplete ([1u8, 2u8]) (read little-endian)
================
Input: [1u8, 2u8, 3u8]
Result: Incomplete ([1u8, 2u8, 3u8]) (read little-endian)
================
Input: [0u8, 0u8, 0u8, 1u8] (LE: 16777216) (BE: 1)
Result: 16777216u32 (read little-endian)
================
Input: [255u8, 0u8, 0u8, 0u8] (LE: 255) (BE: 4278190080)
Result: 255u32 (read little-endian)
================
Input: [1u8, 1u8, 0u8, 0u8] (LE: 257) (BE: 16842752)
Result: 257u32 (read little-endian)
================
Input: []
Result: EOF (read native byte order)
================
Input: [1u8]
Result: Incomplete ([1u8]) (read native byte order)
================
Input: [1u8, 2u8]
Result: Incomplete ([1u8, 2u8]) (read native byte order)
================
Input: [1u8, 2u8, 3u8]
Result: Incomplete ([1u8, 2u8, 3u8]) (read native byte order)
================
Input: [0u8, 0u8, 0u8, 1u8] (LE: 16777216) (BE: 1)
Result: 16777216u32 (read native byte order)
================
Input: [255u8, 0u8, 0u8, 0u8] (LE: 255) (BE: 4278190080)
Result: 255u32 (read native byte order)
================
Input: [1u8, 1u8, 0u8, 0u8] (LE: 257) (BE: 16842752)
Result: 257u32 (read native byte order)