package musicxmltestsuite.tests.musicxmlin; import static com.xenoage.utils.kernel.Range.range; import static com.xenoage.utils.math.Fraction._0; import static com.xenoage.utils.math.Fraction._1; import static com.xenoage.utils.math.Fraction.fr; import static com.xenoage.zong.core.position.MP.mp0; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import musicxmltestsuite.tests.base.Base13b; import org.junit.Test; import com.xenoage.zong.core.Score; import com.xenoage.zong.core.header.ColumnHeader; import com.xenoage.zong.core.music.key.TraditionalKey; import com.xenoage.zong.core.position.MP; public class Test13b implements Base13b, MusicXmlInTest { @Test public void test() { Score score = getScore(); TraditionalKey[] expectedKeys = getExpectedKeys(); MP mp = mp0; for (int iKey : range(expectedKeys)) { ColumnHeader column = score.getColumnHeader(mp.measure); TraditionalKey key = (TraditionalKey) column.getKeys().get(mp.beat); assertNotNull("mp " + mp, key); assertEquals("mp " + mp, expectedKeys[iKey].getFifths(), key.getFifths()); assertEquals("mp " + mp, expectedKeys[iKey].getMode(), key.getMode()); mp = mp.withBeat(mp.beat.add(fr(1, 4))); if (mp.beat.compareTo(_1) >= 0) { mp = mp.withMeasure(mp.measure + 1).withBeat(_0); } } } }