package marytts.features; import static org.junit.Assert.*; import java.util.Locale; import marytts.unitselection.select.Target; import marytts.util.string.ByteStringTranslator; import org.junit.Before; import org.junit.Test; public class TargetFeatureComputerTest { private TestByteValuedFeatureProcessor processor; private TargetFeatureComputer computer; private String[] valueProvider() { String[] values = new String[ByteStringTranslator.MAXNUM]; for (int v = 0; v < values.length; v++) { values[v] = "val" + v; } return values; } @Before public void setUp() throws Exception { System.setProperty(".allophoneset", "jar:/marytts/features/allophones.ROOT.xml"); FeatureProcessorManager manager = new FeatureProcessorManager(Locale.ROOT); processor = new TestByteValuedFeatureProcessor(); manager.addFeatureProcessor(processor); computer = new TargetFeatureComputer(manager, processor.getName()); } @Test public void testToStringValues() { String[] values = processor.getValues(); ByteStringTranslator translator = new ByteStringTranslator(values); for (String expected : values) { byte feature = translator.get(expected); FeatureVector vector = new FeatureVector(new byte[] { feature }, new short[] {}, new float[] {}, 0); String actual = computer.toStringValues(vector); assertEquals(expected, actual); } } public class TestByteValuedFeatureProcessor implements ByteValuedFeatureProcessor { private ByteStringTranslator values; public TestByteValuedFeatureProcessor() { this.values = new ByteStringTranslator(valueProvider()); } @Override public String getName() { return "test_feature"; } @Override public byte process(Target target) { return 0; } @Override public String[] getValues() { return values.getStringValues(); } } }