Skip to content
Snippets Groups Projects

Introduce Chars

Merged Björn Ludwig requested to merge introduce_chars into main
1 file
+ 65
0
Compare changes
  • Side-by-side
  • Inline
+ 65
0
from typing import Iterable, List
from hypothesis import given, settings, strategies as hst
from src.ilp_keyboard_layout_optimization.data_aquisition.chars import (
Chars,
)
from src.ilp_keyboard_layout_optimization.type_aliases import CharTuple
def test_chars_init():
assert Chars()
def test_chars_chars_type():
assert isinstance(Chars().chars, str)
def test_chars_char_tuple_type():
assert isinstance(Chars().char_tuple, CharTuple.__origin__)
@given(hst.tuples(hst.text(min_size=1)))
@settings(deadline=None)
# TODO Fix this test, it is not generating what it is supposed to
def test_chars_input_tuple(char_tuple):
assert Chars(char_tuple).chars == "".join(char_tuple)
@given(hst.text(min_size=1))
def test_chars_input_str(char_string):
assert Chars(char_string).chars == char_string
@given(hst.text(min_size=1))
def test_chars_input_tuple_equals_input_str(char_string):
char_tuple = Chars._str2char_tuple(char_string)
assert Chars(char_string).chars == Chars(char_tuple).chars
@given(hst.text(min_size=1))
def test_chars_input_str(char_string):
assert Chars(char_string).chars == char_string
def test_chars_default():
all_test_chars = list(Chars().chars)
basic_latin = _get_unicode_chars(range(0x0021, 0x007F))
latin_1_supp = _get_unicode_chars(
(0x00C4, 0x00D6, 0x00DC, 0x00E4, 0x00F6, 0x00FC, 0x00DF)
)
general_punc = _get_unicode_chars((0x2013, 0x2026))
extended_alphabet = basic_latin + latin_1_supp + general_punc
for char in extended_alphabet:
all_test_chars.remove(char)
assert not all_test_chars
def _get_unicode_chars(code_point_range: Iterable) -> List[str]:
return [chr(char) for char in code_point_range]
@given(hst.text(min_size=1))
def test_chars_monograms(char_string):
pass
Loading