Mercurial > dedupe
annotate TestBitDecoder.cpp @ 70:c2ad34480216
Quieting clang is obviously only needed for clang and breaks other compilers.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Sat, 12 Jan 2013 12:15:34 +0100 |
| parents | f9fa7ea71d37 |
| children |
| rev | line source |
|---|---|
|
20
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 #include "BitDecoder.hpp" |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 #include "TestFramework.hpp" |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
3 |
|
31
bf3dce7fedcb
Remove all references to QDebug
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
28
diff
changeset
|
4 |
|
20
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
5 |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
6 BOOST_AUTO_TEST_CASE( TestSimple ) |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
7 { |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
8 BitDecoder* up = new BitDecoder("a"); |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
9 BitDecoder* down = new BitDecoder("b"); |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
10 |
|
50
f9fa7ea71d37
Plug leaks in tests.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
45
diff
changeset
|
11 std::auto_ptr<BitDecoder> full(BitDecoder::merge(down, up)); |
|
20
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
12 |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
13 BOOST_REQUIRE(full->data().isNull()); |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
14 BOOST_REQUIRE_EQUAL(up->data(), "a"); |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
15 BOOST_REQUIRE_EQUAL(down->data(), "b"); |
|
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
16 |
|
45
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
17 BOOST_REQUIRE_EQUAL(full->decode("1"), "a"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
18 BOOST_REQUIRE_EQUAL(full->decode("0"), "b"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
19 BOOST_REQUIRE_EQUAL(full->decode("1111"), "aaaa"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
20 BOOST_REQUIRE_EQUAL(full->decode("0000"), "bbbb"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
21 BOOST_REQUIRE_EQUAL(full->decode("1101"), "aaba"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
22 BOOST_REQUIRE_EQUAL(full->decode("1111"), "aaaa"); |
|
20
754e12c927b3
Class for decoding binary datarepresentations, eg. Huffman trees.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
23 } |
|
44
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
24 |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
25 BOOST_AUTO_TEST_CASE( TestLong ) |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
26 { |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
27 BitDecoder* up = new BitDecoder("b"); |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
28 BitDecoder* down = new BitDecoder("a"); |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
29 for (int i = 0; i < 12; ++i) { |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
30 down = BitDecoder::merge(down, up); |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
31 up = new BitDecoder(QString('c' + i)); |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
32 } |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
33 |
|
50
f9fa7ea71d37
Plug leaks in tests.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
45
diff
changeset
|
34 std::auto_ptr<BitDecoder> full(BitDecoder::merge(down, up)); |
|
44
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
35 |
|
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
36 BOOST_REQUIRE(full->data().isNull()); |
|
45
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
37 BOOST_REQUIRE_EQUAL(full->decode("1"), "n"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
38 BOOST_REQUIRE_EQUAL(full->decode("01"), "m"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
39 BOOST_REQUIRE_EQUAL(full->decode("001"), "l"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
40 BOOST_REQUIRE_EQUAL(full->decode("0001"), "k"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
41 BOOST_REQUIRE_EQUAL(full->decode("00001"), "j"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
42 BOOST_REQUIRE_EQUAL(full->decode("000001"), "i"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
43 BOOST_REQUIRE_EQUAL(full->decode("0000001"), "h"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
44 BOOST_REQUIRE_EQUAL(full->decode("00000001"), "g"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
45 BOOST_REQUIRE_EQUAL(full->decode("000000001"), "f"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
46 BOOST_REQUIRE_EQUAL(full->decode("0000000001"), "e"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
47 BOOST_REQUIRE_EQUAL(full->decode("00000000001"), "d"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
48 BOOST_REQUIRE_EQUAL(full->decode("000000000001"), "c"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
49 BOOST_REQUIRE_EQUAL(full->decode("0000000000001"), "b"); |
|
41cc0d8ac77f
Decode directly from bitString.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
44
diff
changeset
|
50 BOOST_REQUIRE_EQUAL(full->decode("0000000000000"), "a"); |
|
44
7348d4efa4f6
More testing for BitDecoder.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
51 } |
