aboutsummaryrefslogtreecommitdiff
path: root/tests/tlzsschain.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/tlzsschain.nim')
-rw-r--r--tests/tlzsschain.nim18
1 files changed, 15 insertions, 3 deletions
diff --git a/tests/tlzsschain.nim b/tests/tlzsschain.nim
index 241a0f1..a8c2012 100644
--- a/tests/tlzsschain.nim
+++ b/tests/tlzsschain.nim
@@ -14,11 +14,11 @@
14# You should have received a copy of the GNU Affero General Public License 14# You should have received a copy of the GNU Affero General Public License
15# along with this program. If not, see <https://www.gnu.org/licenses/>. 15# along with this program. If not, see <https://www.gnu.org/licenses/>.
16 16
17import unittest 17import unittest, sequtils, tables
18import polyfill, lzssnode, lzsschain 18import polyfill, lzssnode, lzsschain
19 19
20suite "lzsschain": 20suite "lzsschain":
21 test "decode": 21 proc chain(): LzssChain =
22 let chainArray = [ 22 let chainArray = [
23 lzssCharacter(0), lzssCharacter(1), lzssCharacter(2), 23 lzssCharacter(0), lzssCharacter(1), lzssCharacter(2),
24 lzssCharacter(3), lzssCharacter(4), lzssCharacter(5), 24 lzssCharacter(3), lzssCharacter(4), lzssCharacter(5),
@@ -27,4 +27,16 @@ suite "lzsschain":
27 lzssReference(3, 3), lzssCharacter(5)] 27 lzssReference(3, 3), lzssCharacter(5)]
28 var chain = lzssChain() 28 var chain = lzssChain()
29 for node in chainArray: chain.append(node) 29 for node in chainArray: chain.append(node)
30 check chain.decode() == @[0'u8, 1, 2, 3, 4, 5, 0, 1, 2, 3, 0, 1, 4, 5, 0, 5, 5, 0, 5, 5] 30 result = chain
31
32 test "decode":
33 check chain().decode() == @[0'u8, 1, 2, 3, 4, 5, 0, 1, 2, 3, 0, 1, 4, 5, 0, 5, 5, 0, 5, 5]
34
35 test "stats":
36 let stats = chain().stats()
37 check stats.characters == newCountTable(concat(
38 repeat(0'u8, 2), repeat(1'u8, 2), repeat(2'u8, 1), repeat(3'u8, 1), repeat(4'u8, 1), repeat(5'u8, 3)))
39 check stats.lengths == newCountTable(concat(
40 repeat(3, 2), repeat(4, 1)))
41 check stats.positions == newCountTable(concat(
42 repeat(3, 1), repeat(6, 1), repeat(8, 1)))