package musicxmltestsuite.tests.base;
import static com.xenoage.utils.collections.CollectionUtils.alist;
import static com.xenoage.utils.kernel.Tuple2.t;
import static com.xenoage.utils.math.Fraction._0;
import static com.xenoage.utils.math.Fraction.fr;
import static com.xenoage.zong.core.position.MP.atBeat;
import static com.xenoage.zong.core.position.MP.unknown;
import java.util.List;
import com.xenoage.utils.kernel.Tuple2;
import com.xenoage.zong.core.music.clef.Clef;
import com.xenoage.zong.core.music.clef.ClefSymbol;
import com.xenoage.zong.core.music.clef.ClefType;
import com.xenoage.zong.core.music.direction.Direction;
import com.xenoage.zong.core.music.direction.Dynamic;
import com.xenoage.zong.core.music.direction.DynamicValue;
import com.xenoage.zong.core.music.direction.Wedge;
import com.xenoage.zong.core.music.direction.WedgeType;
import com.xenoage.zong.core.music.key.Key;
import com.xenoage.zong.core.music.key.TraditionalKey;
import com.xenoage.zong.core.position.MP;
public interface Base43e
extends Base {
@Override default String getFileName() {
return "43e-Multistaff-ClefDynamics.xml";
}
List<Tuple2<MP, Clef>> expectedClefs = getExpectedClefs();
List<Tuple2<MP, Direction>> expectedDirections = getExpectedDirections();
List<Tuple2<MP, Key>> expectedKeys = getExpectedKeys();
static List<Tuple2<MP, Clef>> getExpectedClefs() {
List<Tuple2<MP, Clef>> clefs = alist();
clefs.add(t(atBeat(0, 0, unknown, _0), new Clef(ClefType.clefTreble)));
clefs.add(t(atBeat(0, 2, unknown, _0), new Clef(new ClefType(ClefSymbol.C, 2))));
clefs.add(t(atBeat(1, 0, unknown, _0), new Clef(ClefType.clefBass)));
clefs.add(t(atBeat(1, 1, unknown, _0), new Clef(ClefType.clefTreble)));
return clefs;
}
static List<Tuple2<MP, Direction>> getExpectedDirections() {
Wedge wedge;
List<Tuple2<MP, Direction>> directions = alist();
directions.add(t(atBeat(0, 0, unknown, _0), new Dynamic(DynamicValue.ffff)));
directions.add(t(atBeat(0, 0, unknown, fr(3, 4)), new Dynamic(DynamicValue.p)));
directions.add(t(atBeat(1, 0, unknown, _0), wedge = new Wedge(WedgeType.Crescendo)));
directions.add(t(atBeat(1, 0, unknown, fr(2, 4)), wedge.getWedgeEnd()));
return directions;
}
static List<Tuple2<MP, Key>> getExpectedKeys() {
List<Tuple2<MP, Key>> keys = alist();
keys.add(t(atBeat(unknown, 0, unknown, _0), new TraditionalKey(0)));
keys.add(t(atBeat(unknown, 1, unknown, _0), new TraditionalKey(2)));
return keys;
}
}