package nl.tudelft.lifetiles.graph.view; import static org.junit.Assert.assertEquals; import javafx.scene.shape.Rectangle; import org.junit.Test; public class EdgeLineTest { @Test public void StraightInsFrom_LineSameTest() { Rectangle from = new Rectangle(0, 0, 2, 2); Rectangle to = new Rectangle(4, 0, 2, 2); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), line.getLine().getEndY(), 0); // Should be half of (start y + end y) of 'to' assertEquals(line.getLine().getStartY(), (double) 0 + (0 + 2) / 2, 1e-10); } @Test public void StraightLineInsFrom_DiffTest() { Rectangle from = new Rectangle(0, 0, 2, 2); Rectangle to = new Rectangle(4, 1, 2, 1); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), line.getLine().getEndY(), 0); // Should be half of (start y + end y) of 'to' assertEquals(line.getLine().getStartY(), (double) (1 + (1 + 1)) / 2, 1e-10); } @Test public void StraightLineDiffYLowTest() { Rectangle from = new Rectangle(0, 0, 2, 2); Rectangle to = new Rectangle(4, 1, 2, 3); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), line.getLine().getEndY(), 0); assertEquals(line.getLine().getStartY(), 1.0, 1e-10); } @Test public void StraightLineDiffYUpperTest() { Rectangle from = new Rectangle(0, 1, 2, 3); Rectangle to = new Rectangle(4, 0, 2, 2); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), line.getLine().getEndY(), 0); assertEquals(line.getLine().getStartY(), 2.5, 1e-10); } @Test public void StraightLineFromSmallerTest() { Rectangle from = new Rectangle(0, 1, 2, 1); Rectangle to = new Rectangle(4, 0, 2, 4); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), line.getLine().getEndY(), 0); assertEquals(line.getLine().getStartY(), 1.5, 1e-10); } @Test public void StraightLineEqualSizTest() { Rectangle from = new Rectangle(0, 0, 2, 2); Rectangle to = new Rectangle(4, 0, 2, 2); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), line.getLine().getEndY(), 0); // Should be half of (start y + end y) of 'to' assertEquals(line.getLine().getStartY(), (double) (0 + (0 + 2)) / 2, 1e-10); } @Test public void CrossLineBelowTest() { Rectangle from = new Rectangle(0, 0, 2, 2); Rectangle to = new Rectangle(4, 4, 2, 2); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), (double) 0 + (2 / 2), 1e-10); assertEquals(line.getLine().getEndY(), 4 + (2 / 2), 1e-10); } @Test public void CrossLineAboveTest() { Rectangle from = new Rectangle(4, 4, 2, 2); Rectangle to = new Rectangle(0, 0, 2, 2); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), (double) (4 + (4 + 2)) / 2, 1e-10); assertEquals(line.getLine().getEndY(), (double) (0 + (0 + 2)) / 2, 1e-10); } @Test public void CrossLineHalfBelowTest() { Rectangle from = new Rectangle(0, 0, 2, 2); Rectangle to = new Rectangle(1, 1, 2, 2); EdgeLine line = new EdgeLine(from, to); assertEquals(line.getLine().getStartY(), (double) (0 + (0 + 2)) / 2, 1e-10); assertEquals(line.getLine().getEndY(), (double) (0 + (0 + 2)) / 2, 1e-10); } }