diff options
Diffstat (limited to 'tests/tbitreader.nim')
-rw-r--r-- | tests/tbitreader.nim | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/tbitreader.nim b/tests/tbitreader.nim index 8285f63..294f6c9 100644 --- a/tests/tbitreader.nim +++ b/tests/tbitreader.nim | |||
@@ -49,6 +49,29 @@ suite "bitreader": | |||
49 | expect IOError: discard bitReader.readBits(16, uint16) | 49 | expect IOError: discard bitReader.readBits(16, uint16) |
50 | check bitReader.atEnd() | 50 | check bitReader.atEnd() |
51 | 51 | ||
52 | test "readBits (look-ahead overflow)": | ||
53 | let stream = newStringStream() | ||
54 | defer: stream.close() | ||
55 | stream.write(0xAB'u8) | ||
56 | stream.setPosition(0) | ||
57 | |||
58 | let bitReader = stream.bitReader() | ||
59 | check bitReader.readBits(4, uint16) == 0x000B'u16 | ||
60 | check bitReader.readBits(4, uint16) == 0x000A'u16 | ||
61 | check bitReader.atEnd() | ||
62 | |||
63 | test "readBits (from buffer composition)": | ||
64 | let stream = newStringStream() | ||
65 | defer: stream.close() | ||
66 | stream.write(0xABCD'u16) | ||
67 | stream.setPosition(0) | ||
68 | |||
69 | let bitReader = stream.bitReader() | ||
70 | check bitReader.readBits(4, uint16) == 0x000D'u16 | ||
71 | check bitReader.readBits(8, uint16) == 0x00BC'u16 | ||
72 | check bitReader.readBits(4, uint16) == 0x000A'u16 | ||
73 | check bitReader.atEnd() | ||
74 | |||
52 | test "readSeq": | 75 | test "readSeq": |
53 | let stream = newStringStream() | 76 | let stream = newStringStream() |
54 | defer: stream.close() | 77 | defer: stream.close() |