aboutsummaryrefslogtreecommitdiff
path: root/tests/lzss/tmatchring.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lzss/tmatchring.nim')
-rw-r--r--tests/lzss/tmatchring.nim35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/lzss/tmatchring.nim b/tests/lzss/tmatchring.nim
new file mode 100644
index 0000000..ccf3856
--- /dev/null
+++ b/tests/lzss/tmatchring.nim
@@ -0,0 +1,35 @@
1# gzip-like LZSS compressor
2# Copyright (C) 2018 Pacien TRAN-GIRARD
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU Affero General Public License as
6# published by the Free Software Foundation, either version 3 of the
7# License, or (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU Affero General Public License for more details.
13#
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/>.
16
17import unittest, sequtils, algorithm
18import lzss/matchring
19
20suite "matchring":
21 test "items (empty)":
22 var ring = initMatchRing()
23 check toSeq(ring.items).len == 0
24
25 test "addMatch, items (partial)":
26 var ring = initMatchRing()
27 let items = [0, 1, 2]
28 for i in items: ring.addMatch(i)
29 check toSeq(ring.items) == items.reversed()
30
31 test "addMatch, items (rolling)":
32 var ring = initMatchRing()
33 let items = toSeq(0..13)
34 for i in items: ring.addMatch(i)
35 check toSeq(ring.items) == items[^matchLimit..<items.len].reversed()