Refactor out langauges

This commmit removes the languages code and takes a dependency on the
rewritten module.
This commit is contained in:
evilchili
2023-11-22 12:18:50 -05:00
parent 9888e35072
commit 2e5b5556a3
5 changed files with 74 additions and 17 deletions
+20
View File
@@ -0,0 +1,20 @@
import pytest
from language.types import WeightedSet
from language.languages.common import common
@pytest.mark.parametrize('values,expected_members,expected_weights', [
((('foo', 1.0), ('bar', 0.5)), ('foo', 'bar'), (1.0, 0.5))
])
def test_WeightedSet(values, expected_members, expected_weights):
print(*values)
ws = WeightedSet(*values)
assert ws.members == expected_members
assert ws.weights == expected_weights
assert ws.random()
def test_common():
for i in range(50000):
assert common.word()
+22
View File
@@ -0,0 +1,22 @@
from language import types
def test_subclassing():
class akak(types.Language):
clicks = types.WeightedSet(("k'", 1.0),)
def get_grapheme_click(self) -> str:
return self.clicks.random()
ak = akak(
name='ClickSpeak',
vowels=types.WeightedSet(('a', 1.0),),
consonants=types.WeightedSet(),
prefixes=None,
suffixes=None,
rules=set(),
minimum_grapheme_count=2,
syllables=types.SyllableSet((types.Syllable('vowel,click'), 1.0),),
)
assert list(ak.word(2)) == ["ak'", "ak'"]