コード例 #1
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_default_tokenizer():
    tokenizer = DefaultTokenizer()

    actual_tokens = tokenizer.tokenize(template="* hello")

    expected_tokens = [
        AnyToken(),
        CharToken(char=" "),
        CharToken(char="h"),
        CharToken(char="e"),
        CharToken(char="l"),
        CharToken(char="l"),
        CharToken(char="o"),
    ]
    assert actual_tokens == expected_tokens
コード例 #2
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_choice_token_find_nested():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = ChoiceTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="[h[e|a]llo|hi]",
        tokenizer=tokenizer,
    )

    expected_token = ChoiceToken(choices=[
        [
            CharToken(char="h"),
            ChoiceToken(choices=[[CharToken(char="e")], [CharToken(
                char="a")]]),
            CharToken(char="l"),
            CharToken(char="l"),
            CharToken(char="o"),
        ],
        [
            CharToken(char="h"),
            CharToken(char="i"),
        ],
    ])

    assert find_token_in_template_result.token == expected_token
    assert find_token_in_template_result.end == 14
コード例 #3
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_optional_token_match_with_message():
    token = OptionalToken(tokens=[CharToken(char="h")])

    token_ending_variants = token.match_with_message(
        message="hello",
        matcher=Matcher(tokenizer=DefaultTokenizer()),
    )

    assert token_ending_variants == [0, 1]
コード例 #4
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_char_token_match_with_message_incorrect():
    token = CharToken(char="a")

    token_ending_variants = token.match_with_message(
        message="hello",
        matcher=Matcher(tokenizer=DefaultTokenizer()),
    )

    assert token_ending_variants == []
コード例 #5
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_any_token_match_with_message():
    token = AnyToken()

    token_ending_variants = token.match_with_message(
        message="hello",
        matcher=Matcher(tokenizer=DefaultTokenizer()),
    )

    assert token_ending_variants == [1, 2, 3, 4, 5]
コード例 #6
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_optional_token_none():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = OptionalTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="hello",
        tokenizer=tokenizer,
    )

    assert not find_token_in_template_result
コード例 #7
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_choice_token_find_without_finish():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = ChoiceTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="[hello|hi",
        tokenizer=tokenizer,
    )

    assert not find_token_in_template_result
コード例 #8
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_not_any_token():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = AnyTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="hello",
        tokenizer=tokenizer,
    )

    assert find_token_in_template_result is None
コード例 #9
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_optional_token_without_finish_char():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = OptionalTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="((h)ello",
        tokenizer=tokenizer,
    )

    assert not find_token_in_template_result
コード例 #10
0
ファイル: test_generation.py プロジェクト: odryfox/coriander
def test_generation():
    tokenizer = DefaultTokenizer()
    generator = Generator(tokenizer=tokenizer)
    template = "he*o"

    message = generator.generate(template=template)

    assert message[0] == "h"
    assert message[1] == "e"
    assert message[-1] == "o"

    assert len(message) > 3
コード例 #11
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_any_token():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = AnyTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="* hello",
        tokenizer=tokenizer,
    )

    assert find_token_in_template_result
    assert find_token_in_template_result.token == AnyToken()
    assert find_token_in_template_result.end == 1
コード例 #12
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_char_token():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = CharTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="hello",
        tokenizer=tokenizer,
    )

    assert find_token_in_template_result
    assert find_token_in_template_result.token == CharToken(char="h")
    assert find_token_in_template_result.end == 1
コード例 #13
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_optional_token():
    tokenizer = DefaultTokenizer()
    token_in_template_finder = OptionalTokenFinder()

    find_token_in_template_result = token_in_template_finder.find_in_template(
        template="(hello)",
        tokenizer=tokenizer,
    )

    expected_token = OptionalToken(tokens=[
        CharToken(char="h"),
        CharToken(char="e"),
        CharToken(char="l"),
        CharToken(char="l"),
        CharToken(char="o"),
    ], )

    assert find_token_in_template_result
    assert find_token_in_template_result.token == expected_token
    assert find_token_in_template_result.end == 7
コード例 #14
0
ファイル: test_tokens.py プロジェクト: odryfox/coriander
def test_choice_token_match_none():
    token = ChoiceToken(choices=[
        [
            CharToken(char="h"),
            CharToken(char="e"),
            CharToken(char="l"),
            CharToken(char="l"),
            CharToken(char="o"),
        ],
        [
            CharToken(char="h"),
            CharToken(char="i"),
        ],
    ])

    token_ending_variants = token.match_with_message(
        message="eee",
        matcher=Matcher(tokenizer=DefaultTokenizer()),
    )

    assert token_ending_variants == []
コード例 #15
0
ファイル: matching.py プロジェクト: odryfox/coriander
 def __init__(self) -> None:
     tokenizer = DefaultTokenizer()
     super(DefaultMatcher, self).__init__(tokenizer=tokenizer, )
コード例 #16
0
ファイル: generation.py プロジェクト: odryfox/coriander
 def __init__(self):
     tokenizer = DefaultTokenizer()
     super().__init__(tokenizer=tokenizer)