bytetrie/tests/tries/degenerated_trie.py

52 lines
1.1 KiB
Python
Raw Permalink Normal View History

"""
A degenerated ByteTrie fixture. ByteTrie resolves to a doubly-linked list. The
worst case scenario.
See degenerated_trie.png
"""
import pytest
from bytetrie import ByteTrie
def insert(trie):
""" Shall only be used to insert strings """
t = trie
def _insert(*vals):
for val in vals:
t.insert(val.encode('utf-8'), val)
return _insert
@pytest.fixture
def degenerated_trie():
t = ByteTrie()
ins = insert(t)
ins("A")
ins("AB")
ins("ABC")
ins("ABCD")
ins("ABCDE")
ins("ABCDEF")
ins("ABCDEFG")
ins("ABCDEFGH")
ins("ABCDEFGHI")
ins("ABCDEFGHIJ")
ins("ABCDEFGHIJK")
ins("ABCDEFGHIJKL")
ins("ABCDEFGHIJKLM")
ins("ABCDEFGHIJKLMN")
ins("ABCDEFGHIJKLMNO")
ins("ABCDEFGHIJKLMNOP")
ins("ABCDEFGHIJKLMNOPQ")
ins("ABCDEFGHIJKLMNOPQR")
ins("ABCDEFGHIJKLMNOPQRS")
ins("ABCDEFGHIJKLMNOPQRST")
ins("ABCDEFGHIJKLMNOPQRSTU")
ins("ABCDEFGHIJKLMNOPQRSTUV")
ins("ABCDEFGHIJKLMNOPQRSTUVW")
ins("ABCDEFGHIJKLMNOPQRSTUVWX")
ins("ABCDEFGHIJKLMNOPQRSTUVWXY")
ins("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
return t