/*
* Copyright (C) 2013 たんらる
*/
package fourthline.mmlTools;
import static org.junit.Assert.*;
import org.junit.Test;
import fourthline.mmlTools.core.TuningBase;
import fourthline.mmlTools.core.UndefinedTickException;
/**
* @author fourthline
*
*/
public class MMLNoteEventTest {
@Test
public void testGetOctave() {
MMLEventList eventList = new MMLEventList("c");
MMLNoteEvent noteEvent = eventList.getMMLNoteEventList().get(0);
System.out.println(noteEvent.getOctave());
assertEquals(4, noteEvent.getOctave());
}
@Test
public void testIncreaseOctave() {
MMLEventList eventList = new MMLEventList("c>>c");
MMLNoteEvent noteEvent0 = eventList.getMMLNoteEventList().get(0);
MMLNoteEvent noteEvent1 = eventList.getMMLNoteEventList().get(1);
int noteOctave0 = noteEvent0.getOctave();
assertEquals(4, noteEvent0.getOctave());
String changedOctave = noteEvent1.changeOctaveinMMLString(noteOctave0);
assertEquals(">>", changedOctave);
}
@Test
public void testDecreaseOctave() {
MMLEventList eventList = new MMLEventList("c<<c");
MMLNoteEvent noteEvent0 = eventList.getMMLNoteEventList().get(0);
MMLNoteEvent noteEvent1 = eventList.getMMLNoteEventList().get(1);
int noteOctave0 = noteEvent0.getOctave();
assertEquals(4, noteEvent0.getOctave());
String changedOctave = noteEvent1.changeOctaveinMMLString(noteOctave0);
assertEquals("<<", changedOctave);
}
@Test
public void testTuningNote_64() throws UndefinedTickException {
MMLEventList eventList = new MMLEventList("c1&c64");
String expected = "c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64&c64";
MMLNoteEvent noteEvent = eventList.getMMLNoteEventList().get(0);
noteEvent.setTuningNote(TuningBase.L64);
System.out.println(noteEvent.toMMLString());
assertEquals(expected, noteEvent.toMMLString());
assertEquals(TuningBase.L64, new MMLEventList(expected).getMMLNoteEventList().get(0).getTuningBase());
}
@Test
public void testTuningNote_32() throws UndefinedTickException {
MMLEventList eventList = new MMLEventList("c1&c64");
String expected = "c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c32&c64";
MMLNoteEvent noteEvent = eventList.getMMLNoteEventList().get(0);
noteEvent.setTuningNote(TuningBase.L32);
System.out.println(noteEvent.toMMLString());
assertEquals(expected, noteEvent.toMMLString());
assertEquals(TuningBase.L32, new MMLEventList(expected).getMMLNoteEventList().get(0).getTuningBase());
}
@Test
public void testTuningNote_16() throws UndefinedTickException {
MMLEventList eventList = new MMLEventList("c1&c64");
String expected = "c16&c16&c16&c16&c16&c16&c16&c16&c16&c16&c16&c16&c16&c16&c16&c16&c64";
MMLNoteEvent noteEvent = eventList.getMMLNoteEventList().get(0);
noteEvent.setTuningNote(TuningBase.L16);
System.out.println(noteEvent.toMMLString());
assertEquals(expected, noteEvent.toMMLString());
assertEquals(TuningBase.L16, new MMLEventList(expected).getMMLNoteEventList().get(0).getTuningBase());
}
@Test
public void testParse_0() {
MMLEventList eventList1 = new MMLEventList("v14l16o5aav16cv-1c");
MMLEventList eventList2 = new MMLEventList("V14L16O5aacc");
assertEquals(eventList1.toString(), eventList2.toString());
}
}