/* * Copyright (C) 2013-2017 たんらる */ package fourthline.mmlTools; import static org.junit.Assert.*; import java.util.ArrayList; import org.junit.Test; /** * @author fourthline * */ public class MMLTempoEventTest { /** * Test method for {@link fourthline.mmlTools.MMLTempoEvent#appendToListElement(java.util.List)}. */ @Test public void testAppendToListElement() { ArrayList<MMLTempoEvent> tempoList = new ArrayList<MMLTempoEvent>(); ArrayList<MMLTempoEvent> expectList = new ArrayList<MMLTempoEvent>(); MMLTempoEvent tempoEvent1 = new MMLTempoEvent(120, 10); MMLTempoEvent tempoEvent2 = new MMLTempoEvent(150, 10); tempoEvent1.appendToListElement(tempoList); tempoEvent2.appendToListElement(tempoList); tempoEvent2.appendToListElement(expectList); System.out.println(tempoList); assertEquals(expectList.toString(), tempoList.toString()); } private void checkGetTimeOnTickTest(String mml, long expect) { ArrayList<MMLTempoEvent> tempoList = new ArrayList<MMLTempoEvent>(); MMLEventList eventList = new MMLEventList(mml, tempoList); int tick = (int) eventList.getTickLength(); System.out.println("tick: " + tick); long time = MMLTempoEvent.getTimeOnTickOffset(tempoList, tick); assertEquals(expect, time); assertEquals(tick, MMLTempoEvent.getTickOffsetOnTime(tempoList, time)); } @Test public void testGetTimeOnTickOffset_0() { String mml = "t60cccccccccct120cccccccccc"; long expect = 15000; checkGetTimeOnTickTest(mml, expect); } @Test public void testGetTimeOnTickOffset_1() { String mml = "cccccccccct60cccccccccc"; long expect = 15000; checkGetTimeOnTickTest(mml, expect); } @Test public void testGetTimeOnTickOffset_2() { String mml = "t32l1.c"; long expect = 11250; checkGetTimeOnTickTest(mml, expect); } @Test public void testGetTimeOnTickOffset_3() { String mml = ""; long expect = 0; checkGetTimeOnTickTest(mml, expect); } @Test public void test_staticFunc() { MMLTempoEvent t0 = new MMLTempoEvent(120, 0); ArrayList<MMLTempoEvent> tempoList = new ArrayList<>(); tempoList.add(new MMLTempoEvent(90, 96)); assertEquals(96, MMLTempoEvent.getTickOffsetOnTime(tempoList, 500)); assertEquals(120, MMLTempoEvent.searchOnTick(tempoList, 0)); assertTrue(t0.equals(MMLTempoEvent.getMaxTempoEvent(tempoList))); } @Test public void test_fromString() { MMLTempoEvent t1 = new MMLTempoEvent(140, 192); String str = t1.toString(); System.out.println(str); MMLTempoEvent t2 = MMLTempoEvent.fromString(str); System.out.println(t1); System.out.println(t2); assertEquals(true, t1.equals(t2)); } @Test public void test_searchEqualsTick() { ArrayList<MMLTempoEvent> tempoList = new ArrayList<>(); tempoList.add(new MMLTempoEvent(90, 96)); tempoList.add(new MMLTempoEvent(150, 192)); assertFalse(MMLTempoEvent.searchEqualsTick(tempoList, 95)); assertTrue (MMLTempoEvent.searchEqualsTick(tempoList, 96)); assertFalse(MMLTempoEvent.searchEqualsTick(tempoList, 97)); assertFalse(MMLTempoEvent.searchEqualsTick(tempoList, 191)); assertTrue (MMLTempoEvent.searchEqualsTick(tempoList, 192)); assertFalse(MMLTempoEvent.searchEqualsTick(tempoList, 193)); } @Test public void test_equals() { MMLTempoEvent t1 = new MMLTempoEvent(120, 0); MMLTempoEvent t2 = new MMLTempoEvent(120, 0); MMLTempoEvent t3 = new MMLTempoEvent(121, 0); MMLTempoEvent t4 = new MMLTempoEvent(120, 1); assertTrue(t1.equals(t2)); assertFalse(t1.equals(t3)); assertFalse(t1.equals(t4)); assertFalse(t1.equals("")); } }