Adding a test for next/prev
[?]
Feb 7, 2021, 4:47 PM
KM3JAFGPFV7MP7M2LJIYRVAUTU646B3IRXADTRZKOU2RF7LUB62QCDependencies
- [2]
OFINGD26implementing prev() on cursors (+ some cleanup) - [3]
PXF3R6SVImproving test coverage for btree::cursor - [*]
OP6SVMODResetting history - [*]
UAQX27N4Tests - [*]
EYNN7RLSTests++ (including UUID) - [*]
KX3WVNZWTesting/debugging "rebalance causes split of the root"
Change contents
- replacement in sanakirja-core/src/btree/cursor.rs at line 206
P::move_next(current.page.as_page(), &mut current.cursor);let left = P::left_child(current.page.as_page(), ¤t.cursor);let left = P::right_child(current.page.as_page(), ¤t.cursor); - edit in sanakirja-core/src/btree/cursor.rs at line 214
} else {P::move_next(current.page.as_page(), &mut current.cursor); - edit in sanakirja-core/src/btree/cursor.rs at line 218
P::move_next(current.page.as_page(), &mut current.cursor); - edit in sanakirja-core/src/btree/cursor.rs at line 224
} else {P::move_next(current.page.as_page(), &mut current.cursor); - edit in sanakirja-core/src/btree/cursor.rs at line 230
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
debug!("======== prev"); - edit in sanakirja-core/src/btree/cursor.rs at line 242
debug!("prev = {:?} {:?} {:?}" ,self.pointer, current.page, current.cursor); - edit in sanakirja-core/src/btree/cursor.rs at line 244
debug!("empty"); - edit in sanakirja-core/src/btree/cursor.rs at line 255
debug!("current = {:?} {:?}", k, v); - edit in sanakirja-core/src/btree/cursor.rs at line 267
debug!("pop"); - edit in sanakirja/src/tests.rs at line 742
}}#[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);}