diff options
Diffstat (limited to 'JLanguageTool/src/test/de/danielnaber/languagetool/tokenizers/de/GermanSRXSentenceTokenizerTest.java')
-rw-r--r-- | JLanguageTool/src/test/de/danielnaber/languagetool/tokenizers/de/GermanSRXSentenceTokenizerTest.java | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/JLanguageTool/src/test/de/danielnaber/languagetool/tokenizers/de/GermanSRXSentenceTokenizerTest.java b/JLanguageTool/src/test/de/danielnaber/languagetool/tokenizers/de/GermanSRXSentenceTokenizerTest.java new file mode 100644 index 0000000..179662d --- /dev/null +++ b/JLanguageTool/src/test/de/danielnaber/languagetool/tokenizers/de/GermanSRXSentenceTokenizerTest.java @@ -0,0 +1,108 @@ +/* LanguageTool, a natural language style checker + * Copyright (C) 2006 Daniel Naber (http://www.danielnaber.de) + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 + * USA + */ +package de.danielnaber.languagetool.tokenizers.de; + +import junit.framework.TestCase; +import de.danielnaber.languagetool.TestTools; +import de.danielnaber.languagetool.tokenizers.SRXSentenceTokenizer; + +/** + * @author Daniel Naber + */ +public class GermanSRXSentenceTokenizerTest extends TestCase { + + // accept \n as paragraph: + private SRXSentenceTokenizer stokenizer = new SRXSentenceTokenizer("de"); + // accept only \n\n as paragraph: + private SRXSentenceTokenizer stokenizer2 = new SRXSentenceTokenizer("de"); + + public void setUp() { + stokenizer.setSingleLineBreaksMarksParagraph(true); + stokenizer2.setSingleLineBreaksMarksParagraph(false); + } + + public void testTokenize() { + // NOTE: sentences here need to end with a space character so they + // have correct whitespace when appended: + testSplit(new String[] { "Dies ist ein Satz." }); + testSplit(new String[] { "Dies ist ein Satz. ", "Noch einer." }); + testSplit(new String[] { "Ein Satz! ", "Noch einer." }); + testSplit(new String[] { "Ein Satz... ", "Noch einer." }); + testSplit(new String[] { "Unter http://www.test.de gibt es eine Website." }); + testSplit(new String[] { "Das Schreiben ist auf den 3.10. datiert." }); + testSplit(new String[] { "Das Schreiben ist auf den 31.1. datiert." }); + testSplit(new String[] { "Das Schreiben ist auf den 3.10.2000 datiert." }); + testSplit(new String[] { "Natürliche Vererbungsprozesse prägten sich erst im 18. und frühen 19. Jahrhundert aus." }); + + testSplit(new String[] { "Friedrich I., auch bekannt als Friedrich der Große." }); + testSplit(new String[] { "Friedrich II., auch bekannt als Friedrich der Große." }); + testSplit(new String[] { "Friedrich IIXC., auch bekannt als Friedrich der Große." }); + testSplit(new String[] { "Friedrich II. öfter auch bekannt als Friedrich der Große." }); + testSplit(new String[] { "Friedrich VII. öfter auch bekannt als Friedrich der Große." }); + testSplit(new String[] { "Friedrich X. öfter auch bekannt als Friedrich der Zehnte." }); + + testSplit(new String[] { "Heute ist der 13.12.2004." }); + testSplit(new String[] { "Heute ist der 13. Dezember." }); + testSplit(new String[] { "Heute ist der 1. Januar." }); + testSplit(new String[] { "Es geht am 24.09. los." }); + testSplit(new String[] { "Es geht um ca. 17:00 los." }); + testSplit(new String[] { "Das in Punkt 3.9.1 genannte Verhalten." }); + + testSplit(new String[] { "Diese Periode begann im 13. Jahrhundert und damit bla." }); + testSplit(new String[] { "Diese Periode begann im 13. oder 14. Jahrhundert und damit bla." }); + testSplit(new String[] { "Diese Periode datiert auf das 13. bis zum 14. Jahrhundert und damit bla." }); + + testSplit(new String[] { "Das gilt lt. aktuellem Plan." }); + testSplit(new String[] { "Orangen, Äpfel etc. werden gekauft." }); + + testSplit(new String[] { "Das ist,, also ob es bla." }); + testSplit(new String[] { "Das ist es.. ", "So geht es weiter." }); + + testSplit(new String[] { "Das hier ist ein(!) Satz." }); + testSplit(new String[] { "Das hier ist ein(!!) Satz." }); + testSplit(new String[] { "Das hier ist ein(?) Satz." }); + testSplit(new String[] { "Das hier ist ein(???) Satz." }); + testSplit(new String[] { "Das hier ist ein(???) Satz." }); + + testSplit(new String[] { "»Der Papagei ist grün.« ", "Das kam so." }); + testSplit(new String[] { "»Der Papagei ist grün«, sagte er" }); + + // TODO: derzeit unterscheiden wir nicht, ob nach dem Doppelpunkt ein + // ganzer Satz kommt oder nicht: + testSplit(new String[] { "Das war es: gar nichts." }); + testSplit(new String[] { "Das war es: Dies ist ein neuer Satz." }); + + // Tests created as part of regression testing of SRX tokenizer. + // They come from Schuld und Sühne (Crime and Punishment) book. + testSplit(new String[] { "schlug er die Richtung nach der K … brücke ein. " }); + testSplit(new String[] { "sobald ich es von einem Freunde zurückbekomme …« Er wurde verlegen und schwieg." }); + // testSplit(new String[] { "Verstehen Sie wohl? ", "… ", "Gestatten Sie mir noch die Frage" }); + testSplit(new String[] { "Er kannte eine Unmenge Quellen, aus denen er schöpfen konnte, d. h. natürlich, wo er durch Arbeit sich etwas verdienen konnte." }); + testSplit(new String[] { "Stimme am lautesten heraustönte …. ", "Sobald er auf der Straße war" }); +// testSplit(new String[] { "Aber nein doch, er hörte alles nur zu deutlich! ", "\n", "… ", "›Also, wenn's so ist" }); + testSplit(new String[] { "»Welche Wohnung?\" ", "»Die, wo wir arbeiten." }); + testSplit(new String[] { "»Nun also, wie ist's?« fragte Lushin und blickte sie fest an." }); +// testSplit(new String[] { "gezeigt hat.« ", "… ", "Hm! " }); + } + + public void testSplit(String[] sentences) { + TestTools.testSplit(sentences, stokenizer); + } + +} |