package com.xenoage.zong.core.music;
import com.xenoage.zong.core.music.group.BarlineGroup;
import com.xenoage.zong.core.music.group.StavesRange;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
import static com.xenoage.utils.kernel.Range.range;
import static org.junit.Assert.*;
/**
* Tests for {@link StavesList}.
*
* @author Andreas Wenger
*/
public class StavesListTest {
@Test public void addBarlineGroupTest() {
StavesList stavesList = create5Staves();
//add barline groups from staves 0 to 2 and 1 to 3. should merge to 0 to 3
stavesList.addBarlineGroup(new StavesRange(0, 2), BarlineGroup.Style.Common);
stavesList.addBarlineGroup(new StavesRange(1, 3), BarlineGroup.Style.Common);
assertEquals(1, stavesList.getBarlineGroups().size());
assertEquals(new BarlineGroup(new StavesRange(0, 3), BarlineGroup.Style.Common),
stavesList.getBarlineGroups().get(0));
}
private StavesList create5Staves() {
StavesList stavesList = new StavesList();
List<Part> parts = new ArrayList<>();
List<Staff> staves = new ArrayList<>();
for (int i : range(5)) {
parts.add(new Part("Part " + i, "", 1, null));
staves.add(Staff.staffMinimal());
}
stavesList.setParts(parts);
stavesList.setStaves(staves);
return stavesList;
}
}