/*
* Copyright (C) 2013 たんらる
*/
package fourthline.mmlTools;
import static org.junit.Assert.*;
import org.junit.*;
import fourthline.mmlTools.core.MelodyParser;
import fourthline.mmlTools.core.UndefinedTickException;
public class MMLOptToolsTest {
private String orig_tick[] = {
"32",
"32.",
"16",
"16.",
"8",
"8.",
"4",
"4.",
"2",
"2.",
"1",
"1.",
"6",
"12",
"24"
};
public int[] mmlTimeTest(String mml1, String mml2) {
try {
MelodyParser parser1 = new MelodyParser(mml1);
MelodyParser parser2 = new MelodyParser(mml2);
int result1 = parser1.getLength();
int result2 = parser2.getLength();
System.out.printf("*** %d, %d\n", result1, result2);
int result[] = { result1, result2 };
return result;
} catch (UndefinedTickException e) {}
return null;
}
@Test
public void basic_test01() {
MMLOptTools tools = new MMLOptTools();
for (int i = 0; i < orig_tick.length; i++) {
try {
String orig = "c";
String s = tools.replaceTail64(orig, orig_tick[i]);
int result[] = mmlTimeTest(orig+orig_tick[i], s);
assertEquals(result[0], result[1]);
} catch (UndefinedTickException e) {
e.printStackTrace();
}
}
}
public String mml_conv(String input) {
MMLOptTools tools = new MMLOptTools();
try {
String s = tools.replaceNoise(input);
System.out.println("----"+s);
return s;
} catch (UndefinedTickException e) {
e.printStackTrace();
}
return null;
}
@Test
public void mml_test01() {
String input = "c4<b+4>c4c4c4d4d-dd";
String expect = "c4<b+4>c8&c9r64c8&c9r64c4d4d-d8&d9r64d";
String s = mml_conv(input);
int result[] = mmlTimeTest(input, s);
assertEquals(result[0], result[1]);
assertEquals(expect, s);
}
}