示例#1
0
  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));
  }
示例#2
0
 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));
 }
示例#3
0
  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());
  }
示例#4
0
 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));
 }