package musicxmltestsuite.tests.musicxml;
import static com.xenoage.utils.EnumUtils.getEnumValue;
import static org.junit.Assert.assertEquals;
import musicxmltestsuite.tests.base.Base13b;
import org.junit.Test;
import com.xenoage.zong.core.music.key.TraditionalKey;
import com.xenoage.zong.core.music.key.TraditionalKey.Mode;
import com.xenoage.zong.musicxml.types.MxlAttributes;
import com.xenoage.zong.musicxml.types.MxlKey;
import com.xenoage.zong.musicxml.types.choice.MxlMusicDataContent;
import com.xenoage.zong.musicxml.types.choice.MxlMusicDataContent.MxlMusicDataContentType;
import com.xenoage.zong.musicxml.types.partwise.MxlMeasure;
import com.xenoage.zong.musicxml.types.partwise.MxlPart;
public class Test13b
implements Base13b, MusicXmlTest {
@Test public void test() {
TraditionalKey[] expectedKeys = getExpectedKeys();
MxlPart part = getFirstPart();
int iKey = 0;
for (int i = 0; i <= 2; i++) {
MxlMeasure measure = part.getMeasures().get(i);
for (MxlMusicDataContent data : measure.getMusicData().getContent()) {
if (data.getMusicDataContentType() == MxlMusicDataContentType.Attributes) {
//check type
MxlAttributes attr = (MxlAttributes) data;
MxlKey key = attr.getKey();
assertEquals(expectedKeys[iKey].getFifths(), key.getFifths());
assertEquals(expectedKeys[iKey].getMode(), getEnumValue(""+key.getMode(), Mode.values()));
iKey++;
if (iKey >= expectedKeys.length)
break;
}
}
}
assertEquals("not all keys found", expectedKeys.length, iKey);
}
}