changeset 220:0a51bc6b7f97

table_reader: add test for approx_offset_of()
author Lewin Bormann <lbo@spheniscida.de>
date Sat, 09 Sep 2017 17:20:26 +0200
parents 7ee8c2fc7756
children d7de5c816802
files src/table_reader.rs
diffstat 1 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/table_reader.rs	Sat Sep 09 15:52:05 2017 +0200
+++ b/src/table_reader.rs	Sat Sep 09 17:20:26 2017 +0200
@@ -484,7 +484,26 @@
     }
 
     #[test]
-    fn test_table_cache_use() {
+    fn test_table_approximate_offset() {
+        let (src, size) = build_table(build_data());
+        let mut opt = Options::default();
+        opt.block_size = 32;
+        let table = Table::new_raw(opt, wrap_buffer(src), size).unwrap();
+        let mut iter = table.iter();
+
+        let expected_offsets = vec![0,0,0,42,42,42,86];
+        let mut i = 0;
+        for (k, _) in LdbIteratorIter::wrap(&mut iter) {
+            assert_eq!(expected_offsets[i], table.approx_offset_of(&k));
+            i += 1;
+        }
+
+        // Key-past-last returns offset of metaindex block.
+        assert_eq!(132, table.approx_offset_of("{aa".as_bytes()));
+    }
+
+    #[test]
+    fn test_table_block_cache_use() {
         let (src, size) = build_table(build_data());
         let mut opt = Options::default();
         opt.block_size = 32;