package com.xenoage.zong.musiclayout.stampings; import static com.xenoage.utils.math.Delta.df; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; import com.xenoage.utils.math.geom.Point2f; import com.xenoage.utils.math.geom.Shape; import com.xenoage.zong.core.format.ScoreFormat; /** * Tests for {@link StaffStamping}. * * @author Andreas Wenger */ public class StaffStampingTest { private ScoreFormat scoreFormat = new ScoreFormat(); @Test public void createStaffLayoutElement() { //create default staff layout element. //drawing element must have 5 lines and the default interline space. StaffStamping staff1 = new StaffStamping(null, 0, new Point2f(40, 80), 160, 5, 1.6f); assertEquals(5, staff1.linesCount); assertEquals(scoreFormat.getInterlineSpace(), staff1.is, df); assertEquals(40, staff1.positionMm.x, df); assertEquals(80, staff1.positionMm.y, df); assertEquals(160, staff1.lengthMm, df); //create another staff layout element //with 3 lines and 4 mm interline space. StaffStamping staff2 = new StaffStamping(null, 0, new Point2f(40, 160), 160, 3, 4); assertEquals(3, staff2.linesCount); assertEquals(4, staff2.is, df); } @Test public void containsPoint() { StaffStamping staff = new StaffStamping(null, 0, new Point2f(40, 80), 160, 5, 1); Shape shape = staff.getBoundingShape(); //don't hit it assertFalse(shape.contains(new Point2f(39, 81))); assertFalse(shape.contains(new Point2f(42, 79))); assertFalse(shape.contains(new Point2f(201, 81))); assertFalse(shape.contains(new Point2f(100, 85))); //hit it assertTrue(shape.contains(new Point2f(40, 81))); assertTrue(shape.contains(new Point2f(41, 80))); assertTrue(shape.contains(new Point2f(200, 81))); assertTrue(shape.contains(new Point2f(100, 84))); } }