package musicxmltestsuite.tests.musicxmlin; import static com.xenoage.utils.collections.CollectionUtils.alist; import static com.xenoage.utils.kernel.Range.range; import static com.xenoage.zong.core.position.MP.atVoice; import static musicxmltestsuite.tests.utils.SlursTest.assertSlurBetween; import static musicxmltestsuite.tests.utils.VoiceTest.assertEqualsVoice; import java.util.List; import musicxmltestsuite.tests.base.Base42a; import org.junit.Test; import com.xenoage.zong.core.music.Staff; import com.xenoage.zong.core.music.Voice; import com.xenoage.zong.core.music.VoiceElement; import com.xenoage.zong.core.music.chord.Chord; import com.xenoage.zong.core.music.slur.SlurType; import com.xenoage.zong.core.position.MP; public class Test42a implements Base42a, MusicXmlInTest { @Test public void test() { Staff staff = getFirstStaff(); //test chords for (int iMeasure : range(2)) { for (int iVoice : range(2)) { MP mpVoice = atVoice(0, iMeasure, iVoice); Voice expectedVoice = expectedStaff.getVoice(mpVoice); Voice voice = staff.getVoice(mpVoice); assertEqualsVoice(expectedVoice, voice, mpVoice); } } //test slurs assertSlurBetween(getVoiceChords(staff.getVoice(atVoice(0, 1, 0))), 1, 2, SlurType.Slur); assertSlurBetween(getVoiceChords(staff.getVoice(atVoice(0, 1, 1))), 1, 2, SlurType.Slur); } private Chord[] getVoiceChords(Voice voice) { List<Chord> chords = alist(); for (VoiceElement e : voice.getElements()) if (e instanceof Chord) chords.add((Chord) e); return chords.toArray(new Chord[chords.size()]); } }