diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000..0f711fa --- /dev/null +++ b/.pylintrc @@ -0,0 +1,3 @@ +[MASTER] + +ignore=tests diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..50d7d55 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,19 @@ +astroid==2.12.9 +attrs==22.1.0 +coverage==6.4.4 +dill==0.3.5.1 +iniconfig==1.1.1 +isort==5.10.1 +lazy-object-proxy==1.7.1 +mccabe==0.7.0 +packaging==21.3 +platformdirs==2.5.2 +pluggy==1.0.0 +py==1.11.0 +pylint==2.15.2 +pyparsing==3.0.9 +pytest==7.1.3 +tomli==2.0.1 +tomlkit==0.11.4 +typing-extensions==4.3.0 +wrapt==1.14.1 diff --git a/src/tests/__init__.py b/src/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/tests/trie_test.py b/src/tests/trie_test.py new file mode 100644 index 0000000..dc2fd2c --- /dev/null +++ b/src/tests/trie_test.py @@ -0,0 +1,31 @@ +import unittest +from trie import Trie + +class TestTrie(unittest.TestCase): + def setUp(self): + """Alustus testejä varten.""" + self.trie = Trie() + + def test_lisaa(self): + self.assertFalse(self.trie.juuri.lapset) + + self.trie.lisaa("AB") + + self.assertTrue("A" in self.trie.juuri.lapset) + self.assertFalse("B" in self.trie.juuri.lapset) + self.assertEqual(0, self.trie.juuri.lapset["A"].laskuri) + self.assertEqual(1, self.trie.juuri.lapset["A"].lapset["B"].laskuri) + + self.trie.lisaa("AB") + + self.assertEqual(2, self.trie.juuri.lapset["A"].lapset["B"].laskuri) + + def test_etsi_seuraavat(self): + self.assertFalse(self.trie.etsi_seuraavat("AB")) + self.trie.lisaa("ABC") + self.trie.lisaa("ABC") + self.assertEqual(self.trie.etsi_seuraavat("AB"), [(1, "C")]) + self.trie.lisaa("ABC") + self.trie.lisaa("ABD") + self.assertEqual(self.trie.etsi_seuraavat("AB"), [(0.75, "C"), (0.25, "D")]) + self.assertEqual(self.trie.etsi_seuraavat("AB"), [(0.75, "C"), (0.25, "D")]) diff --git a/src/trie.py b/src/trie.py index 717117c..3cf8a37 100644 --- a/src/trie.py +++ b/src/trie.py @@ -1,5 +1,5 @@ """Markovin ketjuille tarkoitettu trie-tietorakenteen implementaatio. -import Trie +from trie import Trie """ class TrieSolmu: # pylint: disable=too-few-public-methods