package musicxmltestsuite.tests.musicxmlin; import static com.xenoage.utils.collections.CollectionUtils.set; import static com.xenoage.utils.kernel.Range.range; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Set; import musicxmltestsuite.tests.base.Base32c; import org.junit.Test; import com.xenoage.zong.core.music.Voice; import com.xenoage.zong.core.music.annotation.Annotation; import com.xenoage.zong.core.music.annotation.Articulation; import com.xenoage.zong.core.music.annotation.ArticulationType; import com.xenoage.zong.core.music.chord.Chord; public class Test32c implements Base32c, MusicXmlInTest { @Test public void test() { Voice voice = getFirstVoice(); for (int chordIndex : range(voice.getElements())) assertAnnotations(chordIndex, (Chord) voice.getElements().get(chordIndex)); } private void assertAnnotations(int chordIndex, Chord chord) { Set<Annotation> annotations = set(chord.getAnnotations()); assertEquals(""+chordIndex, 2, annotations.size()); assertTrue(""+chordIndex, containsArticulation(annotations, ArticulationType.Accent)); assertTrue(""+chordIndex, containsArticulation(annotations, ArticulationType.Staccato)); } private boolean containsArticulation(Set<Annotation> annotations, ArticulationType articulation) { return annotations.stream().anyMatch( a -> ((Articulation) a).getType() == articulation); } }