1from translate.lang import factory
2
3
4def test_punctranslate():
5    """Tests that we can translate punctuation."""
6    language = factory.getlanguage("nqo")
7    assert language.punctranslate("") == ""
8    assert language.punctranslate("abc efg") == "abc efg"
9    assert language.punctranslate("abc efg.") == "abc efg."
10    assert language.punctranslate("abc efg!") == "abc efg߹"
11    assert language.punctranslate("abc, efg; d?") == "abc߸ efg؛ d؟"
12    # See https://github.com/translate/translate/issues/1819
13    assert language.punctranslate("It is called “abc”") == "It is called ”abc“"
14
15
16def test_sentences():
17    """Tests basic functionality of sentence segmentation."""
18    language = factory.getlanguage("nqo")
19    sentences = language.sentences("")
20    assert sentences == []
21
22    # this text probably does not make sense, I just copied it from Firefox
23    # translation and added some punctuation marks
24    sentences = language.sentences(
25        "ߡߍ߲ ߠߎ߬ ߦߋ߫ ߓߊ߯ߙߊ߫ ߟߊ߫ ߢߐ߲߮ ߝߍ߬ ߞߊ߬ ߓߟߐߟߐ ߟߊߞߊ߬ߣߍ߲ ߕߏ߫. ߖߊ߬ߡߊ ߣߌ߫ ߓߍ߯ ߛߊ߬ߥߏ ߘߐ߫."
26    )
27    print(sentences)
28    assert sentences == [
29        "ߡߍ߲ ߠߎ߬ ߦߋ߫ ߓߊ߯ߙߊ߫ ߟߊ߫ ߢߐ߲߮ ߝߍ߬ ߞߊ߬ ߓߟߐߟߐ ߟߊߞߊ߬ߣߍ߲ ߕߏ߫.",
30        "ߖߊ߬ߡߊ ߣߌ߫ ߓߍ߯ ߛߊ߬ߥߏ ߘߐ߫.",
31    ]
32    sentences = language.sentences(
33        "ߡߍ߲ ߠߎ߬ ߦߋ߫ ߓߊ߯ߙߊ߫ ߟߊ߫ ߢߐ߲߮ ߝߍ߬ ߞߊ߬ ߓߟߐߟߐ ߟߊߞߊ߬ߣߍ߲ ߕߏ߫? ߖߊ߬ߡߊ ߣߌ߫ ߓߍ߯ ߛߊ߬ߥߏ ߘߐ߫."
34    )
35    print(sentences)
36    assert sentences == [
37        "ߡߍ߲ ߠߎ߬ ߦߋ߫ ߓߊ߯ߙߊ߫ ߟߊ߫ ߢߐ߲߮ ߝߍ߬ ߞߊ߬ ߓߟߐߟߐ ߟߊߞߊ߬ߣߍ߲ ߕߏ߫?",
38        "ߖߊ߬ߡߊ ߣߌ߫ ߓߍ߯ ߛߊ߬ߥߏ ߘߐ߫.",
39    ]
40