Skip to content

Commit

Permalink
fixing small bug in display
Browse files Browse the repository at this point in the history
  • Loading branch information
RuABraun committed May 30, 2024
1 parent ccd3a97 commit 680f15b
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 8 deletions.
35 changes: 27 additions & 8 deletions tests/test_functions.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,23 @@
import Levenshtein as levd
from texterrors import texterrors
from dataclasses import dataclass
import difflib


def show_diff(text1, text2):
# Split the strings into lines to compare them line by line
lines1 = text1.splitlines()
lines2 = text2.splitlines()

# Create a Differ object and calculate the differences
differ = difflib.Differ()
diff = list(differ.compare(lines1, lines2))

# Optionally, you can filter out lines that haven't changed
diff = [line for line in diff if line[0] != ' ']

# Join the result back into a single string and return it
return '\n'.join(diff)


def test_levd():
Expand Down Expand Up @@ -164,7 +181,7 @@ def test_process_output():
def test_process_output_multi():
reflines = ['0 telefonat mit frau spring klee vom siebenundzwanzigsten august einundzwanzig ich erkläre frau spring klee dass die bundes gerichtliche recht sprechung im zusammen hang mit dem unfall begriff beziehungsweise dem ungewöhnlichen äusseren faktor wie auch bezüglich der unfall ähnlichen körper schädigungen insbesondere die analogie zu meniskus rissen klar geregelt ist']
hypalines = ['0 telefonat mit frau sprinkler vom siebenundzwanzigsten august einundzwanzig ich erkläre frau sprinkle dass die bundes gerichtliche recht sprechung im zusammen hang mit dem unfall begriff beziehungsweise dem ungewöhnlichen äusseren faktoren wie auch bezüglich der unfall ähnlichen körper schädigungen insbesondere die analogie zum meniskus rissen klar geregelt ist\'']
hypblines = ['0 telefonat mit frau sprinkle vom siebenundzwanzigsten august einundzwanzig ich erkläre frau sprinkle dass die bundes gerichtliche recht sprechung im zusammen hang mit dem unfall begriff beziehungsweise dem ungewöhnlichen äusseren faktors wie auch bezüglich der unfall ähnlichen körper schädigungen insbesondere die analogie zum meniskus riss en klar geregelt ist']
hypblines = ['0 telefonat mit frau sprinkle vom siebenundzwanzigsten august einundzwanzig ich erkläre frau sprinkle dass die bundes gerichtliche recht sprechung im zusammen hang mit dem unfall begriff beziehungsweise dem ungewöhnlichen äusseren faktors wie auch bezüglich der unfall ähnlichen körper schädigungen insbesondere die analogie zum meniskus riss en klar geregelt ist ok']
refs = create_inp(reflines)
hypa = create_inp(hypalines)
hypb = create_inp(hypblines)
Expand All @@ -176,9 +193,9 @@ def test_process_output_multi():
telefonat mit frau SPRING KLEE vom siebenundzwanzigsten august einundzwanzig ich erkläre frau SPRING KLEE dass die bundes gerichtliche recht sprechung im zusammen hang mit dem unfall begriff
* SPRINKLER * SPRINKLE
* SPRINKLE * SPRINKLE
beziehungsweise dem ungewöhnlichen äusseren FAKTOR wie auch bezüglich der unfall ähnlichen körper schädigungen insbesondere die analogie ZU meniskus * RISSEN klar geregelt IST
FAKTOREN ZUM IST'
FAKTORS ZUM RISS EN
beziehungsweise dem ungewöhnlichen äusseren FAKTOR wie auch bezüglich der unfall ähnlichen körper schädigungen insbesondere die analogie ZU meniskus * RISSEN klar geregelt IST *
FAKTOREN ZUM IST'
FAKTORS ZUM RISS EN OK
Results with file hypa
WER: 14.3 (ins 0, del 2, sub 5 / 49)
Expand All @@ -198,11 +215,12 @@ def test_process_output_multi():
---
Results with file hypb
WER: 16.3 (ins 1, del 2, sub 5 / 49)
WER: 18.4 (ins 2, del 2, sub 5 / 49)
SER: 100.0
Insertions:
riss\t1
ok\t1
Deletions (second number is word count total):
spring\t2\t2
Expand All @@ -218,17 +236,18 @@ def test_process_output_multi():
Insertions:
riss\t1
ist\t1
Deletions (second number is word count total):
Substitutions (reference>hypothesis, second number is reference word count total):
sprinkler>sprinkle\t1\t1
faktoren>faktors\t1\t1
rissen>en\t1\t1
ist'>ist\t1\t1
ist'>ok\t1\t1
"""
# print(output)
assert ref == output
#print(output)
assert ref == output, show_diff(ref, output)


def test_process_output_colored():
Expand Down
14 changes: 14 additions & 0 deletions texterrors/texterrors.py
Original file line number Diff line number Diff line change
Expand Up @@ -549,6 +549,19 @@ def _merge_multilines(multilines_a, multilines_b, terminal_width):
idx_b += 1
else:
raise RuntimeError('Should not be possible')
while idx_a < len(multiline_a):
le_a = multiline_a[idx_a]
multiline.add_lineelement((*le_a.words, ''),
(*le_a.lengths, -1,),
False)
idx_a += 1
while idx_b < len(multiline_b):
le_b = multiline_b[idx_b]
multiline.add_lineelement((le_b.words[0], '', le_b.words[1]),
(le_b.lengths[0], -1, le_b.lengths[1],),
False)
idx_b += 1

multilines.append(multiline)
return multilines

Expand Down Expand Up @@ -615,6 +628,7 @@ def process_output(ref_utts, hyp_utts, fh, ref_file, hyp_file, cer=False, num_to
use_chardiff=True, isctm=False, skip_detailed=False,
keywords=None, utt_group_map=None, oracle_wer=False,
freq_sort=False, nocolor=False, insert_tok='<eps>'):

terminal_width, _ = shutil.get_terminal_size()
terminal_width = 120 if terminal_width >= 120 else terminal_width

Expand Down

0 comments on commit 680f15b

Please sign in to comment.