package com.tilusnet.josm.plugins.alignways.geometry; import static org.junit.Assert.assertTrue; import org.junit.Before; import org.junit.Test; import com.tilusnet.josm.plugins.alignways.geometry.AlignWaysGeomLine.IntersectionStatus; public class AlignWaysGeomLineTest { private AlignWaysGeomLine line_x1y1x2y2, line_par_x1y1x2y2; private AlignWaysGeomLine line_abc; private AlignWaysGeomLine line_mb; private AlignWaysGeomLine line_line; private AlignWaysGeomLine line_horiz, line_vert; @Before public void setUp() { line_x1y1x2y2 = new AlignWaysGeomLine(-2.0, -1.0, 4.0, 3.0); line_abc = new AlignWaysGeomLine(2.0/3, -1.0, 1.0/3); line_mb = new AlignWaysGeomLine(2.0/3, 1.0/3); line_line = new AlignWaysGeomLine(line_x1y1x2y2); line_par_x1y1x2y2 = new AlignWaysGeomLine(-2.0, -2.0, 4.0, 2.0); line_horiz = new AlignWaysGeomLine(-5.0, 3.0, 6.0, 3.0); line_vert = new AlignWaysGeomLine(2.0, -3.0, 2.0, -10.5); } @Test public void LineLineEquiv() { assertTrue(line_x1y1x2y2.equals(line_line)); } @Test public void LineAbcLineEquiv() { assertTrue(line_x1y1x2y2.equals(line_abc)); } @Test public void LineMbLineEquiv() { assertTrue(line_x1y1x2y2.equals(line_mb)); } @Test public void LineAbcMbEquiv() { assertTrue(line_abc.equals(line_mb)); } @Test public void LineLineParallel() { line_x1y1x2y2.getIntersection(line_par_x1y1x2y2); assertTrue(line_x1y1x2y2.getIntersectionStatus() == IntersectionStatus.LINES_PARALLEL); } @Test public void LineAbcOverlap() { line_x1y1x2y2.getIntersection(line_abc); assertTrue(line_x1y1x2y2.getIntersectionStatus() == IntersectionStatus.LINES_OVERLAP); } @Test public void LineMbOverlap() { line_x1y1x2y2.getIntersection(line_mb); assertTrue(line_x1y1x2y2.getIntersectionStatus() == IntersectionStatus.LINES_OVERLAP); } @Test public void AbcMbOverlap() { line_abc.getIntersection(line_mb); assertTrue(line_abc.getIntersectionStatus() == IntersectionStatus.LINES_OVERLAP); } @Test public void GetXOnHoriz() { assertTrue(line_horiz.getXonLine(2.0).isNaN()); } @Test public void GetYOnVert() { assertTrue(line_vert.getYonLine(2.0).isNaN()); } @Test public void StatusUndefAfterConstruct() throws Exception { AlignWaysGeomLine newLine = new AlignWaysGeomLine(1.0, 2.0); assertTrue(newLine.getIntersectionStatus() == IntersectionStatus.UNDEFINED); } }