public void testPaddedInRange() { final HashingRegion r = new HashingRegion(4, 5, 5, 6, 3, 8); assertEquals(0, r.isInPaddedRange(4, 3)); assertEquals(-1, r.isInPaddedRange(4, 2)); assertEquals(0, r.isInPaddedRange(5, 7)); assertEquals(1, r.isInPaddedRange(5, 8)); assertEquals(0, r.isInPaddedRange(4, 7)); assertEquals(0, r.isInPaddedRange(5, 2)); assertEquals(-1, r.isInPaddedRange(3, 5)); assertEquals(1, r.isInPaddedRange(6, 5)); assertEquals(0, HashingRegion.NONE.isInPaddedRange(Long.MAX_VALUE, Long.MAX_VALUE)); assertEquals(0, HashingRegion.NONE.isInPaddedRange(0, 0)); final HashingRegion r2 = new HashingRegion(4, 5); assertEquals(-1, r2.isInPaddedRange(3, 5)); assertEquals(1, r2.isInPaddedRange(6, 5)); assertEquals(0, r2.isInPaddedRange(4, Long.MIN_VALUE)); assertEquals(1, r2.isInPaddedRange(5, 0)); final HashingRegion r3 = new HashingRegion(4, 1, 5, 6, 1, 8); assertEquals(-1, r3.isInPaddedRange(4, -1)); final HashingRegion r4 = new HashingRegion(4, 0, 5, 6, 0, 8); assertEquals(0, r4.isInPaddedRange(4, -1)); }
public void testNone() { assertTrue(HashingRegion.NONE.isInRange(Long.MAX_VALUE, Long.MAX_VALUE)); assertTrue(HashingRegion.NONE.isInRange(Long.MIN_VALUE, Long.MIN_VALUE)); assertTrue(HashingRegion.NONE.isInRange(1, 1)); assertTrue(HashingRegion.NONE.isInRange(0, 0)); assertTrue(HashingRegion.NONE.isInRange(-1, -1)); }
public void testClipping() { final HashingRegion region = new HashingRegion(43, 32, 90, 44, -1, -1); assertEquals(43, region.getStart()); assertEquals(32, region.getStartClipPosition()); assertEquals(90, region.getEnd()); assertEquals(44, region.getEndClipPosition()); assertEquals(91, region.getExclusiveEndId()); assertEquals("[(43:32), (90:44)]", region.toString()); // earlier template assertFalse(region.isInRange(42, 30)); assertFalse(region.isInRange(42, 36)); assertFalse(region.isInRange(42, 49)); // start template assertFalse(region.isInRange(43, 31)); assertTrue(region.isInRange(43, 32)); assertTrue(region.isInRange(43, 39)); // template in the middle assertTrue(region.isInRange(44, 30)); assertTrue(region.isInRange(44, 32)); assertTrue(region.isInRange(44, 40)); assertTrue(region.isInRange(44, 44)); assertTrue(region.isInRange(44, 55)); // end Template assertTrue(region.isInRange(90, 43)); assertFalse(region.isInRange(90, 44)); assertFalse(region.isInRange(90, 46)); // later template assertFalse(region.isInRange(91, 30)); assertFalse(region.isInRange(91, 36)); assertFalse(region.isInRange(91, 49)); assertTrue(new HashingRegion(-1, -1, -1, -1, -1, -1).isInRange(-1, -1)); final HashingRegion templateRegion = new HashingRegion(10, 20); assertFalse(templateRegion.isInRange(9, 1)); assertTrue(templateRegion.isInRange(10, 1)); assertTrue(templateRegion.isInRange(19, 1)); assertFalse(templateRegion.isInRange(20, 1)); assertFalse(templateRegion.isInRange(21, 1)); assertEquals(20, templateRegion.getExclusiveEndId()); // Test NONE assertTrue(HashingRegion.NONE.isInRange(-1, -1)); assertTrue(HashingRegion.NONE.isInRange(10)); assertEquals("[All inclusive]", HashingRegion.NONE.toString()); }
public void testLongestSubsequence() throws IOException { final FakeReader reader = new FakeReader(new int[] {100, 200, 300}); HashingRegion r = new HashingRegion(1, 1); assertEquals(0, r.longestSubSequence(reader)); r = new HashingRegion(0, 1); assertEquals(100, r.longestSubSequence(reader)); r = new HashingRegion(0, 3); assertEquals(300, r.longestSubSequence(reader)); r = new HashingRegion(0, 5, 0, 95, 0, 100); assertEquals(100, r.longestSubSequence(reader)); r = new HashingRegion(0, 15, 1, -1, 5, 100); assertEquals(95, r.longestSubSequence(reader)); r = new HashingRegion(0, 15, 0, 100, 5, 100); assertEquals(95, r.longestSubSequence(reader)); r = new HashingRegion(0, 30, 0, 70, 20, 80); assertEquals(60, r.longestSubSequence(reader)); r = new HashingRegion(0, 0, 2, 250, 0, 260); assertEquals(260, r.longestSubSequence(reader)); r = new HashingRegion(0, 0, 2, 180, 0, 190); assertEquals(200, r.longestSubSequence(reader)); r = new HashingRegion(0, 20, 1, 40, 10, 50); assertEquals(90, r.longestSubSequence(reader)); assertEquals(300, HashingRegion.NONE.longestSubSequence(reader)); }