/** *Copyright (C) 2003 DFKI GmbH. All rights reserved. */ package marytts.language.fr; import marytts.language.fr.Preprocess; import marytts.util.dom.DomUtils; import org.custommonkey.xmlunit.*; import org.testng.Assert; import org.testng.annotations.*; import org.w3c.dom.Document; import org.xml.sax.SAXException; import java.io.IOException; import javax.xml.parsers.ParserConfigurationException; /** * @author Tristan Hamilton * * */ public class PreprocessTest { private static Preprocess module; @BeforeSuite public static void setUpBeforeClass() { module = new Preprocess(); } @DataProvider(name = "DocData") private Object[][] numberExpansionDocData() { // @formatter:off return new Object[][] { { "1", "un" }, { "2", "deux" }, { "3", "trois" }, { "4", "quatre" }, { "42", "quarante-deux"}, { "1er", "premier"}, { "1re", "première"}, { "2e", "deuxième" }, { "3e", "troisième" }, { "4e", "quatrième" } }; // @formatter:on } @DataProvider(name = "NumExpandData") private Object[][] numberExpansionDocDataCardinal() { // @formatter:off return new Object[][] { { "1", "un" }, { "2", "deux" }, { "3", "trois" }, { "4", "quatre" }, { "42", "quarante-deux"} }; // @formatter:on } @DataProvider(name = "OrdinalExpandData") private Object[][] numberExpansionDocDataOrdinal() { // @formatter:off return new Object[][] { { "2", "deuxième" }, { "3", "troisième" }, { "4", "quatrième" } }; // @formatter:on } @Test(dataProvider = "DocData") public void testSpellout(String tokenised, String expected) throws Exception, ParserConfigurationException, SAXException, IOException { Document tokenisedDoc; Document expectedDoc; String tokens = "<maryxml xmlns=\"http://mary.dfki.de/2002/MaryXML\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"0.5\" xml:lang=\"fr\"><p><s><t>" + tokenised + "</t></s></p></maryxml>"; tokenisedDoc = DomUtils.parseDocument(tokens); String words = "<maryxml xmlns=\"http://mary.dfki.de/2002/MaryXML\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" version=\"0.5\" xml:lang=\"fr\"><p><s><mtu orig=\"" + tokenised + "\"><t>" + expected + "</t></mtu></s></p></maryxml>"; expectedDoc = DomUtils.parseDocument(words); module.checkForNumbers(tokenisedDoc); Diff diff = XMLUnit.compareXML(expectedDoc, tokenisedDoc); Assert.assertTrue(diff.identical()); } @Test(dataProvider = "NumExpandData") public void testExpandNum(String token, String word) { double x = Double.parseDouble(token); String actual = module.expandNumber(x); Assert.assertEquals(actual, word); } @Test(dataProvider = "OrdinalExpandData") public void testExpandOrdinal(String token, String word) { double x = Double.parseDouble(token); String actual = module.expandOrdinal(x); Assert.assertEquals(actual, word); } }