package com.xenoage.zong.musiclayout.notator.chord.stem.beam.range; import static com.xenoage.zong.musiclayout.notator.chord.stem.beam.range.OneMeasureOneStaff.oneMeasureOneStaff; import static org.junit.Assert.assertEquals; import org.junit.Test; import com.xenoage.zong.core.music.chord.StemDirection; import com.xenoage.zong.musiclayout.notation.chord.ChordLps; import com.xenoage.zong.musiclayout.notator.chord.stem.beam.range.OneMeasureOneStaff; /** * Tests for {@link OneMeasureOneStaff}. * * @author Uli Teschemacher * @author Andreas Wenger */ public class OneMeasureOneStaffTest { OneMeasureOneStaff testee = oneMeasureOneStaff; @Test public void computeTest() { int linescount = 5; int[][] lineposition = new int[4][1]; StemDirection[] dirs; lineposition[0][0] = 1; lineposition[1][0] = 2; lineposition[2][0] = 3; lineposition[3][0] = 6; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Up, dirs[0]); lineposition[0][0] = 5; lineposition[1][0] = 3; lineposition[2][0] = 2; lineposition[3][0] = 0; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Up, dirs[0]); lineposition[0][0] = 5; lineposition[1][0] = 3; lineposition[2][0] = 0; lineposition[3][0] = 5; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Up, dirs[0]); lineposition = new int[6][1]; lineposition[0][0] = -2; lineposition[1][0] = -1; lineposition[2][0] = 0; lineposition[3][0] = 1; lineposition[4][0] = 2; lineposition[5][0] = 3; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Up, dirs[0]); lineposition[0][0] = 2; lineposition[1][0] = 3; lineposition[2][0] = 4; lineposition[3][0] = 5; lineposition[4][0] = 6; lineposition[5][0] = 7; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Down, dirs[0]); lineposition[0][0] = 2; lineposition[1][0] = 3; lineposition[2][0] = 5; lineposition[3][0] = 7; lineposition[4][0] = 5; lineposition[5][0] = 3; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Down, dirs[0]); lineposition[0][0] = 14; lineposition[1][0] = 9; lineposition[2][0] = 5; lineposition[3][0] = 7; lineposition[4][0] = 1; lineposition[5][0] = -2; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Down, dirs[0]); lineposition[0][0] = 0; lineposition[1][0] = -1; lineposition[2][0] = -2; lineposition[3][0] = 1; lineposition[4][0] = 3; lineposition[5][0] = 5; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Up, dirs[0]); lineposition[0][0] = -2; lineposition[1][0] = 4; lineposition[2][0] = 7; lineposition[3][0] = 8; lineposition[4][0] = 7; lineposition[5][0] = 4; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Down, dirs[0]); lineposition[0][0] = -3; lineposition[1][0] = 4; lineposition[2][0] = 7; lineposition[3][0] = 8; lineposition[4][0] = 7; lineposition[5][0] = 4; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Down, dirs[0]); lineposition[0][0] = 0; lineposition[1][0] = 3; lineposition[2][0] = 5; lineposition[3][0] = 7; lineposition[4][0] = 5; lineposition[5][0] = 3; dirs = testee.compute(clps(lineposition), linescount); assertEquals(StemDirection.Up, dirs[0]); } private ChordLps[] clps(int[][] linePositions) { ChordLps[] ret = new ChordLps[linePositions.length]; for (int i = 0; i < linePositions.length; i++) ret[i] = new ChordLps(linePositions[i]); return ret; } }