pijul nest
guest [sign in]

Adding a test for next/prev

[?]
Feb 7, 2021, 4:47 PM
KM3JAFGPFV7MP7M2LJIYRVAUTU646B3IRXADTRZKOU2RF7LUB62QC

Dependencies

  • [2] OFINGD26 implementing prev() on cursors (+ some cleanup)
  • [3] PXF3R6SV Improving test coverage for btree::cursor
  • [*] OP6SVMOD Resetting history
  • [*] UAQX27N4 Tests
  • [*] EYNN7RLS Tests++ (including UUID)
  • [*] KX3WVNZW Testing/debugging "rebalance causes split of the root"

Change contents

  • replacement in sanakirja-core/src/btree/cursor.rs at line 206
    [2.12129][2.12129:12287]()
    P::move_next(current.page.as_page(), &mut current.cursor);
    let left = P::left_child(current.page.as_page(), &current.cursor);
    [2.12129]
    [2.12287]
    let left = P::right_child(current.page.as_page(), &current.cursor);
  • edit in sanakirja-core/src/btree/cursor.rs at line 214
    [2.12600]
    [2.12600]
    } else {
    P::move_next(current.page.as_page(), &mut current.cursor);
  • edit in sanakirja-core/src/btree/cursor.rs at line 218
    [2.12721][2.12721:12796]()
    P::move_next(current.page.as_page(), &mut current.cursor);
  • edit in sanakirja-core/src/btree/cursor.rs at line 224
    [2.13035]
    [3.646]
    } else {
    P::move_next(current.page.as_page(), &mut current.cursor);
  • edit in sanakirja-core/src/btree/cursor.rs at line 230
    [2.13146]
    [3.664]
    let current = unsafe { &mut *self.stack[self.pointer].as_mut_ptr() };
    P::move_next(current.page.as_page(), &mut current.cursor);
  • edit in sanakirja-core/src/btree/cursor.rs at line 239
    [2.13306]
    [2.13306]
    debug!("======== prev");
  • edit in sanakirja-core/src/btree/cursor.rs at line 242
    [2.13403]
    [2.13403]
    debug!("prev = {:?} {:?} {:?}" ,self.pointer, current.page, current.cursor);
  • edit in sanakirja-core/src/btree/cursor.rs at line 244
    [2.13473]
    [2.13473]
    debug!("empty");
  • edit in sanakirja-core/src/btree/cursor.rs at line 255
    [2.13959]
    [2.13959]
    debug!("current = {:?} {:?}", k, v);
  • edit in sanakirja-core/src/btree/cursor.rs at line 267
    [2.14413]
    [2.14413]
    debug!("pop");
  • edit in sanakirja/src/tests.rs at line 742
    [7.3671]
    [7.3671]
    }
    }
    #[test]
    fn iterators() {
    env_logger::try_init().unwrap_or(());
    let env = Env::new_anon(40960, 1).unwrap();
    let mut txn = Env::mut_txn_begin(&env).unwrap();
    let mut db = create_db_::<MutTxn<&Env, ()>, u64, A, P<u64, A>>(&mut txn).unwrap();
    for i in 0..100 {
    let a = A([i; 100]);
    put(&mut txn, &mut db, &i, &a).unwrap();
    }
    let mut cursor = btree::cursor::Cursor::new(&txn, &db).unwrap();
    for i in 0..50 {
    let (k, v) = cursor.next(&txn).unwrap().unwrap();
    assert_eq!(*k, i);
    assert_eq!(v.0[0], i);
    debug!("{:?}", i);
  • edit in sanakirja/src/tests.rs at line 762
    [7.3677]
    [8.5521]
    crate::debug::debug(&txn, &[&db], "debug", true);
    debug!("=======");
    for i in (25..50).rev() {
    let (k, v) = cursor.prev(&txn).unwrap().unwrap();
    debug!("{:?} {:?}", i, k);
    assert_eq!(*k, i);
    assert_eq!(v.0[0], i);
    }
    debug!("=======");
    for i in 24..75 {
    let (k, v) = cursor.next(&txn).unwrap().unwrap();
    assert_eq!(*k, i);
    assert_eq!(v.0[0], i);
    debug!("{:?}", i);
    }