package marytts.language.it;
import marytts.exceptions.MaryConfigurationException;
import marytts.language.it.preprocess.NumberEP;
import org.testng.annotations.BeforeSuite;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import org.testng.Assert;
import org.w3c.dom.Document;
class NumberEPT extends NumberEP {
int matchT(String s, int t) {
int type;
type = match(s, t);
return type;
}
int canDealWithT(String s, int t) {
int type;
type = canDealWith(s, t);
return type;
}
String expandFloatT(String s) {
String res = expandFloat(s);
return res;
}
String expandIntegerT(long n) {
String res = expandInteger(n);
return res;
}
String expandDigitsT(String s) {
String res = expandDigits(s);
return res;
}
}
public class PreprocessTest extends NumberEP {
private static NumberEP module;
@BeforeSuite
public static void setUpBeforeClass() throws MaryConfigurationException {
module = new NumberEP();
}
@DataProvider(name = "RealNumExpansion")
private Object[][] expandingRealNumbers() {
return new Object[][] {
{ "1", "uno" },
{ "10", "dieci" },
{ "15", "quindici" },
{ "32", "trenta due" },
{ "101", "cento uno" },
{ "1032", "mille trenta due" },
{ "10004", "dieci mila quattro" },
{ "100500", "cento mila cinque cento" },
{ "1200000", "un milione due cento mila" },
{ "1003000005", "un miliardo tre milioni cinque" },
{ "120000000022", "cento venti miliardi venti due" },
{ "1234567890123", "uno due tre quattro cinque sei sette otto nove zero uno due tre" },
{ "12345678901234567", "uno due tre quattro cinque sei sette otto nove zero uno due tre quattro cinque sei sette" }
};
}
@Test(dataProvider = "RealNumExpansion")
public void testNumbers(String tokenised, String exWord) throws Exception, NumberFormatException {
// TODO: How does mary converts input strings to mary data types.
int type = match(tokenised, 0);
int typeDeal = canDealWith(tokenised, type);
String result = "No expansion";
if (typeDeal == 1) {
result = expandFloat(tokenised);
} else if (typeDeal == 2) {
result = expandInteger(tokenised);
} else if (typeDeal == 5) {
result = expandDigits(tokenised);
} else {
new NumberFormatException("Test For the number type not implemented");
}
Assert.assertEquals(result, exWord);
}
}