public static Record r(int v) { return RecordLib.intToRecord(v, RecordLib.TestRecordLength) ; }
@Test public void tree_iter_0_01() { int[] keys = {1, 2, 3, 4, 5} ; RangeIndex rIndex = makeRangeIndex(5) ; add(rIndex, keys) ; Iterator<Record> iter = rIndex.iterator(r(2), r(4)) ; while ( iter.hasNext() ) iter.next() ; List<Integer> x = toIntList(rIndex.iterator(r(2), r(4))) ; List<Integer> expected = toIntList(2, 3) ; assertEquals(expected, x) ; }
public static int r(Record rec) { return RecordLib.recordToInt(rec) ; }
@Test public void int1() { Record r = intToRecord(1234, 4) ; int v = recordToInt(r) ; assertEquals(v , 1234) ; }
public static void testIndexContents(Index index, int... records) { List<Integer> x = toIntList(index.iterator()) ; // Make a unique list of expected records. Remove duplicates List<Integer> y = unique(asList(records)) ; assertEquals("Expected records size and tree size different", y.size(), index.size()) ; assertEquals("Expected records size and iteration over all keys are of different sizes", y.size(), x.size()) ; if ( index instanceof RangeIndex ) { // Check sorted order for ( int i = 0 ; i < x.size() - 2 ; i++ ) { if ( x.get(i) > x.get(i + 1) ) { fail("check failed: " + strings(records)) ; return ; } } } // Check each expected record is in the tree for ( int k : y ) { Record rec = intToRecord(k) ; Record r2 = index.find(rec) ; assertNotNull(r2) ; } } }
public static int delete(Index index, int... vals) { int count = 0 ; for ( int v : vals ) { boolean b = index.delete(r(v)) ; if ( b ) count++ ; } return count ; }
public static List<Integer> r(Iterator<Record> iter) { return RecordLib.toIntList(iter) ; }
@Test public void int2() { // Negative numbers only work for length 4. Record r = intToRecord(-99, 4) ; int v = recordToInt(r) ; assertEquals(v , -99) ; }
public static void testIndexContents(Index index, int... records) { List<Integer> x = toIntList(index.iterator()) ; // Make a unique list of expected records. Remove duplicates List<Integer> y = unique(asList(records)) ; assertEquals("Expected records size and tree size different", y.size(), index.size()) ; assertEquals("Expected records size and iteration over all keys are of different sizes", y.size(), x.size()) ; if ( index instanceof RangeIndex ) { // Check sorted order for ( int i = 0 ; i < x.size() - 2 ; i++ ) { if ( x.get(i) > x.get(i + 1) ) { fail("check failed: " + strings(records)) ; return ; } } } // Check each expected record is in the tree for ( int k : y ) { Record rec = intToRecord(k) ; Record r2 = index.find(rec) ; assertNotNull(r2) ; } } }
@Test public void tree_ins_2_05() { int[] keys = {0, 18, 4, 14, 8, 10, 12, 6, 16, 2} ; RangeIndex rIndex = makeRangeIndex(2) ; testInsert(rIndex, keys) ; assertFalse(rIndex.contains(r(1))) ; assertFalse(rIndex.contains(r(999))) ; assertFalse(rIndex.contains(r(-9))) ; assertFalse(rIndex.contains(r(7))) ; assertEquals(0, r(rIndex.minKey())) ; assertEquals(18, r(rIndex.maxKey())) ; }
static List<Record> intToRecord(int[] v, RecordFactory factory) { List<Record> x = new ArrayList<>() ; for ( int i : v ) x.add(intToRecord(i, factory)) ; return x ; }
@Test public void tree_iter_0_01() { int[] keys = {1, 2, 3, 4, 5} ; RangeIndex rIndex = makeRangeIndex(5) ; add(rIndex, keys) ; Iterator<Record> iter = rIndex.iterator(r(2), r(4)) ; while ( iter.hasNext() ) iter.next() ; List<Integer> x = toIntList(rIndex.iterator(r(2), r(4))) ; List<Integer> expected = toIntList(2, 3) ; assertEquals(expected, x) ; }
@Test public void int1() { Record r = intToRecord(1234, 4) ; int v = recordToInt(r) ; assertEquals(v , 1234) ; }
public int find(RecordBuffer rb, int v) { return rb.find(r(v)) ; }
public static List<Integer> toIntList(Iterator<Record> iter) { return Iter.toList(Iter.map(iter, item->recordToInt(item))) ; }
public static void add(Index index, int... vals) { // System.out.println("Add: "+Arrays.toString(vals)) ; List<Record> x = intToRecord(vals, RecordLib.TestRecordLength) ; for ( Record r : x ) { // System.out.println(" Add: "+r) ; index.insert(r) ; } }
@Test public void int2() { // Negative numbers only work for length 4. Record r = intToRecord(-99, 4) ; int v = recordToInt(r) ; assertEquals(v , -99) ; }