mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 09:23:44 +00:00
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.
64 lines
1.9 KiB
Plaintext
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: 1i32 (read big-endian)
|
|
================
|
|
Input: [255u8, 0u8, 0u8, 0u8] (LE: 255) (BE: -16777216)
|
|
Result: -16777216i32 (read big-endian)
|
|
================
|
|
Input: [1u8, 1u8, 0u8, 0u8] (LE: 257) (BE: 16842752)
|
|
Result: 16842752i32 (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: 16777216i32 (read little-endian)
|
|
================
|
|
Input: [255u8, 0u8, 0u8, 0u8] (LE: 255) (BE: -16777216)
|
|
Result: 255i32 (read little-endian)
|
|
================
|
|
Input: [1u8, 1u8, 0u8, 0u8] (LE: 257) (BE: 16842752)
|
|
Result: 257i32 (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: 16777216i32 (read native byte order)
|
|
================
|
|
Input: [255u8, 0u8, 0u8, 0u8] (LE: 255) (BE: -16777216)
|
|
Result: 255i32 (read native byte order)
|
|
================
|
|
Input: [1u8, 1u8, 0u8, 0u8] (LE: 257) (BE: 16842752)
|
|
Result: 257i32 (read native byte order)
|