def test_writer(self, stream): assert stream == BitStream() write_unary(stream, 0) assert stream == make_bitstream('1') write_unary(stream, 1) assert stream == make_bitstream('101') write_unary(stream, 2) assert stream == make_bitstream('101001')
def test_writer(self, stream): assert stream == BitStream() write_unary(stream, 0) assert stream == make_bitstream('1') write_unary(stream, 1) assert stream == make_bitstream('101') write_unary(stream, 2) assert stream == make_bitstream('101001')
def test_writer(self, stream): assert stream == BitStream() stream.write(0) assert stream == BitStream() stream.write(1) assert stream == make_bitstream('1') stream.write(2) assert stream == make_bitstream('110') stream.write(3) assert stream == make_bitstream('11011')
def test_writer(self, stream): assert stream == BitStream() stream.write(0) assert stream == BitStream() stream.write(1) assert stream == make_bitstream('1') stream.write(2) assert stream == make_bitstream('110') stream.write(3) assert stream == make_bitstream('11011')
def test_decoding_single_symbols(self, codec): assert codec.decode(make_bitstream('1')) == [0] assert codec.decode(make_bitstream('010')) == [1] assert codec.decode(make_bitstream('011')) == [2] assert codec.decode(make_bitstream('00100')) == [3] assert codec.decode(make_bitstream('00101')) == [4] assert codec.decode(make_bitstream('00110')) == [5] assert codec.decode(make_bitstream('00111')) == [6]
def test_encoding_single_symbols(self, codec): assert codec.encode([0]) == make_bitstream('1') assert codec.encode([1]) == make_bitstream('010') assert codec.encode([2]) == make_bitstream('011') assert codec.encode([3]) == make_bitstream('00100') assert codec.encode([4]) == make_bitstream('00101') assert codec.encode([5]) == make_bitstream('00110') assert codec.encode([6]) == make_bitstream('00111')
def test_encoding_single_symbols(self, codec): assert codec.encode([0]) == make_bitstream('1') assert codec.encode([1]) == make_bitstream('010') assert codec.encode([2]) == make_bitstream('011') assert codec.encode([3]) == make_bitstream('00100') assert codec.encode([4]) == make_bitstream('00101') assert codec.encode([5]) == make_bitstream('00110') assert codec.encode([6]) == make_bitstream('00111')
def test_decoding_single_symbols(self, codec): assert codec.decode(make_bitstream('1')) == [0] assert codec.decode(make_bitstream('010')) == [1] assert codec.decode(make_bitstream('011')) == [2] assert codec.decode(make_bitstream('00100')) == [3] assert codec.decode(make_bitstream('00101')) == [4] assert codec.decode(make_bitstream('00110')) == [5] assert codec.decode(make_bitstream('00111')) == [6]
def test_encoding_sequence(self, codec): seq = [3, 1, 0, 0, 1, 2, 4] expected = make_bitstream('001000101101001100101') assert codec.encode(seq) == expected
def test_reader_sequence(self): bs = make_bitstream('100100110') assert 4 == read_binary(bs, 3) assert 2 == read_binary(bs, 2) assert 0 == read_binary(bs, 1) assert 6 == read_binary(bs, 3)
def test_reader(self): assert 0 == read_binary(make_bitstream('0'), 1) assert 1 == read_binary(make_bitstream('1'), 1) assert 2 == read_binary(make_bitstream('10'), 2) assert 5 == read_binary(make_bitstream('101'), 3) assert 16 == read_binary(make_bitstream('10000000'), 5)
def test_reader(self): assert 0 == read_unary(make_bitstream('1')) assert 1 == read_unary(make_bitstream('01')) assert 15 == read_unary(BitStream([False for i in range(15)] + [True]))
def test_reader_sequence(self): bs = make_bitstream('0011010001') assert 2 == read_unary(bs) assert 0 == read_unary(bs) assert 1 == read_unary(bs) assert 3 == read_unary(bs)
def test_encoding_sequence(self, codec): seq = [0, 3, 1, 0, 2, 0, 2, 0, 3, 0, 0, 2] header = '0' * 13 + '100' + '0010' + '00' + '10' + '11' + '01' code_words = '1' + '011' + '00100' + '1' + '010' + '1' + '010' + '1' + '011' + '1' + '1' + '010' expected = make_bitstream(header + code_words) assert codec.encode(seq) == expected
def test_reader_sequence(self): bs = make_bitstream('0011010001') assert 2 == read_unary(bs) assert 0 == read_unary(bs) assert 1 == read_unary(bs) assert 3 == read_unary(bs)
def test_reader(self): assert 0 == read_unary(make_bitstream('1')) assert 1 == read_unary(make_bitstream('01')) assert 15 == read_unary(BitStream([False for i in range(15)] + [True]))
def test_reader_underflow(self): with pytest.raises(ReadError): read_binary(make_bitstream('1'), 2)
def test_reader_sequence(self): bs = make_bitstream('100100110') assert 4 == read_binary(bs, 3) assert 2 == read_binary(bs, 2) assert 0 == read_binary(bs, 1) assert 6 == read_binary(bs, 3)
def test_reader(self): assert 0 == read_binary(make_bitstream('0'), 1) assert 1 == read_binary(make_bitstream('1'), 1) assert 2 == read_binary(make_bitstream('10'), 2) assert 5 == read_binary(make_bitstream('101'), 3) assert 16 == read_binary(make_bitstream('10000000'), 5)
def test_writer2(self, stream): write_unary(stream, 5) assert stream == make_bitstream('000001')
def test_decoding_sequence(self, codec): stream = make_bitstream('001111100101101000110011') expected = [6, 0, 0, 4, 0, 1, 5, 2] assert codec.decode(stream) == expected
def test_encoding_sequence(self, codec): seq = [0, 3, 1, 0, 2, 0, 2, 0, 3, 0, 0, 2] header = '0'*13 + '100'+'0010'+'00'+'10'+'11'+'01' code_words = '1'+'011'+'00100'+'1'+'010'+'1'+'010'+'1'+'011'+'1'+'1'+'010' expected = make_bitstream(header + code_words) assert codec.encode(seq) == expected
def test_decoding_sequence(self, codec): header = '0' * 13 + '100' + '0010' + '00' + '10' + '11' + '01' code_words = '1' + '011' + '00100' + '1' + '010' + '1' + '010' + '1' + '011' + '1' + '1' + '010' stream = make_bitstream(header + code_words) expected = [0, 3, 1, 0, 2, 0, 2, 0, 3, 0, 0, 2] assert codec.decode(stream) == expected
def test_writer2(self, stream): stream.write(19) assert stream == make_bitstream('10011')
def test_encoding_sequence(self, codec): seq = [3, 1, 0, 0, 1, 2, 4] expected = make_bitstream('001000101101001100101') assert codec.encode(seq) == expected
def test_writer2(self, stream): stream.write(19) assert stream == make_bitstream('10011')
def test_decoding_sequence(self, codec): stream = make_bitstream('001111100101101000110011') expected = [6, 0, 0, 4, 0, 1, 5, 2] assert codec.decode(stream) == expected
def test_writer2(self, stream): write_unary(stream, 5) assert stream == make_bitstream('000001')
def test_decoding_sequence(self, codec): header = '0'*13 + '100'+'0010'+'00'+'10'+'11'+'01' code_words = '1'+'011'+'00100'+'1'+'010'+'1'+'010'+'1'+'011'+'1'+'1'+'010' stream = make_bitstream(header + code_words) expected = [0, 3, 1, 0, 2, 0, 2, 0, 3, 0, 0, 2] assert codec.decode(stream) == expected
def test_reader_underflow(self): with pytest.raises(ReadError): read_binary(make_bitstream('1'), 2)