/*
* Copyright (C) 2015 たんらる
*/
package fourthline.mmlTools.core;
import static org.junit.Assert.*;
import org.junit.Test;
/**
*
*/
public final class MMLTicksTest {
@Test
public void test_getTick4() throws UndefinedTickException {
int tick = MMLTicks.getTick("4");
assertEquals(96, tick);
}
@Test
public void test_getTick16() throws UndefinedTickException {
int tick = MMLTicks.getTick("16");
assertEquals(24, tick);
}
@Test
public void test_getTick16dot() throws UndefinedTickException {
int tick1 = MMLTicks.getTick("16...");
int tick2 = MMLTicks.getTick("16.");
assertEquals(tick1, tick2);
}
/**
* 不要文字の無視.
*/
@Test
public void test_getTick9dotAN() throws UndefinedTickException {
int tick1 = MMLTicks.getTick("9.@@@@");
int tick2 = MMLTicks.getTick("9.");
assertEquals(tick1, tick2);
}
/**
* 変換できない.
*/
@Test(expected = UndefinedTickException.class)
public void test_getTick65() throws UndefinedTickException {
MMLTicks.getTick("65");
}
/**
* 調律符生成.
*/
@Test
public void test_toMMLTextByBase() throws UndefinedTickException {
MMLTicks note = new MMLTicks("c", 96+6);
String expect64 = "c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64";
String expect32 = "c32&c32&c32&c32&c32&c32&c32&c32&c64";
String expect16 = "c16&c16&c16&c16&c64";
assertEquals(expect64, note.toMMLTextByBase(TuningBase.L64));
assertEquals(expect32, note.toMMLTextByBase(TuningBase.L32));
assertEquals(expect16, note.toMMLTextByBase(TuningBase.L16));
}
/**
* &の連結なし調律.
*/
@Test
public void test_toMMLTextByBaseR() throws UndefinedTickException {
MMLTicks note = new MMLTicks("r", 96, false);
String expect16 = "r16r16r16r16";
assertEquals(expect16, note.toMMLTextByBase(TuningBase.L16));
}
/**
* 指定調律長で分割後, 生成できなければNG.
*/
@Test(expected = UndefinedTickException.class)
public void test_toMMLTextByBaseE() throws UndefinedTickException {
MMLTicks note = new MMLTicks("r", 96+5, false);
note.toMMLTextByBase(TuningBase.L16);
}
@Test
public void test_minimumTick() {
assertEquals(6, MMLTicks.minimumTick());
}
}