package net.sourceforge.mayfly.parser; import junit.framework.TestCase; public class LocationTest extends TestCase { public void testCombine() throws Exception { Location one = new Location(5, 40, 7, 30); Location two = new Location(8, 35, 9, 32); Location combined = one.combine(two); assertEquals(5, combined.startLineNumber); assertEquals(40, combined.startColumn); assertEquals(9, combined.endLineNumber); assertEquals(32, combined.endColumn); } public void testKnown() throws Exception { Location one = new Location(5, 40, 7, 30); assertTrue(one.knowStart()); assertTrue(one.knowEnd()); assertFalse(Location.UNKNOWN.knowStart()); assertFalse(Location.UNKNOWN.knowEnd()); Location mixed = one.combine(Location.UNKNOWN); assertTrue(mixed.knowStart()); assertFalse(mixed.knowEnd()); Location otherMixed = Location.UNKNOWN.combine(one); assertFalse(otherMixed.knowStart()); assertTrue(otherMixed.knowEnd()); } public void testContains() throws Exception { Location one = new Location(5, 40, 7, 30); assertFalse(one.contains(4, 73)); assertFalse(one.contains(5, 39)); assertTrue(one.contains(5, 40)); assertTrue(one.contains(6, 77)); assertTrue(one.contains(7, 29)); assertFalse(one.contains(7, 30)); assertFalse(one.contains(8, 1)); } public void testSingleLineContains() throws Exception { Location one = new Location(5, 20, 5, 30); assertFalse(one.contains(4, 73)); assertFalse(one.contains(5, 19)); assertTrue(one.contains(5, 20)); assertTrue(one.contains(5, 29)); assertFalse(one.contains(5, 30)); assertFalse(one.contains(6, 1)); } }