|
|
|
|
from __future__ import division, print_function
|
|
|
|
|
|
|
|
|
|
import math
|
|
|
|
|
|
|
|
|
|
from .. import word_error_rate, words
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_words():
|
|
|
|
|
result = list(
|
|
|
|
|
words("Der schnelle [„braune“] Fuchs kann keine 3,14 Meter springen, oder?")
|
|
|
|
|
)
|
|
|
|
|
expected = [
|
|
|
|
|
"Der",
|
|
|
|
|
"schnelle",
|
|
|
|
|
"braune",
|
|
|
|
|
"Fuchs",
|
|
|
|
|
"kann",
|
|
|
|
|
"keine",
|
|
|
|
|
"3,14",
|
|
|
|
|
"Meter",
|
|
|
|
|
"springen",
|
|
|
|
|
"oder",
|
|
|
|
|
]
|
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_words_private_use_area():
|
|
|
|
|
result = list(
|
|
|
|
|
words(
|
|
|
|
|
"ber die vielen Sorgen wegen deelben vergaß Hartkopf, der Frau Amtmnnin das ver⸗\n"
|
|
|
|
|
"ſproene zu berliefern."
|
|
|
|
|
)
|
|
|
|
|
)
|
|
|
|
|
expected = [
|
|
|
|
|
"ber",
|
|
|
|
|
"die",
|
|
|
|
|
"vielen",
|
|
|
|
|
"Sorgen",
|
|
|
|
|
"wegen",
|
|
|
|
|
"deelben",
|
|
|
|
|
"vergaß",
|
|
|
|
|
"Hartkopf",
|
|
|
|
|
"der",
|
|
|
|
|
"Frau",
|
|
|
|
|
"Amtmnnin",
|
|
|
|
|
"das",
|
|
|
|
|
"ver",
|
|
|
|
|
"ſproene",
|
|
|
|
|
"zu",
|
|
|
|
|
"berliefern",
|
|
|
|
|
]
|
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_word_error_rate():
|
|
|
|
|
assert (
|
|
|
|
|
word_error_rate("Dies ist ein Beispielsatz!", "Dies ist ein Beispielsatz!") == 0
|
|
|
|
|
)
|
|
|
|
|
assert (
|
|
|
|
|
word_error_rate("Dies. ist ein Beispielsatz!", "Dies ist ein Beispielsatz!")
|
|
|
|
|
== 0
|
|
|
|
|
)
|
|
|
|
|
assert (
|
|
|
|
|
word_error_rate("Dies. ist ein Beispielsatz!", "Dies ist ein Beispielsatz.")
|
|
|
|
|
== 0
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
assert (
|
|
|
|
|
word_error_rate("Dies ist ein Beispielsatz!", "Dies ist ein Beispielsarz:")
|
|
|
|
|
== 1 / 4
|
|
|
|
|
)
|
|
|
|
|
assert (
|
|
|
|
|
word_error_rate("Dies ist ein Beispielsatz!", "Dies ein ist Beispielsatz!")
|
|
|
|
|
== 2 / 4
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
assert word_error_rate("Dies ist ein Beispielsatz!", "") == 4 / 4
|
|
|
|
|
assert math.isinf(word_error_rate("", "Dies ist ein Beispielsatz!"))
|
|
|
|
|
assert word_error_rate("", "") == 0
|
|
|
|
|
|
|
|
|
|
assert (
|
|
|
|
|
word_error_rate(
|
|
|
|
|
"Schlyñ lorem ipsum dolor sit amet,", "Schlym̃ lorem ipsum dolor sit amet."
|
|
|
|
|
)
|
|
|
|
|
== 1 / 6
|
|
|
|
|
)
|