You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by ka...@apache.org on 2013/04/21 19:37:18 UTC
svn commit: r1470321 -
/labs/mavibot/branches/mavibot-multivalue-support/mavibot/src/test/java/org/apache/mavibot/btree/InMemoryBTreeTest.java
Author: kayyagari
Date: Sun Apr 21 17:37:18 2013
New Revision: 1470321
URL: http://svn.apache.org/r1470321
Log:
some more tests
Modified:
labs/mavibot/branches/mavibot-multivalue-support/mavibot/src/test/java/org/apache/mavibot/btree/InMemoryBTreeTest.java
Modified: labs/mavibot/branches/mavibot-multivalue-support/mavibot/src/test/java/org/apache/mavibot/btree/InMemoryBTreeTest.java
URL: http://svn.apache.org/viewvc/labs/mavibot/branches/mavibot-multivalue-support/mavibot/src/test/java/org/apache/mavibot/btree/InMemoryBTreeTest.java?rev=1470321&r1=1470320&r2=1470321&view=diff
==============================================================================
--- labs/mavibot/branches/mavibot-multivalue-support/mavibot/src/test/java/org/apache/mavibot/btree/InMemoryBTreeTest.java (original)
+++ labs/mavibot/branches/mavibot-multivalue-support/mavibot/src/test/java/org/apache/mavibot/btree/InMemoryBTreeTest.java Sun Apr 21 17:37:18 2013
@@ -1834,4 +1834,103 @@ public class InMemoryBTreeTest
// expected
}
}
+
+ /**
+ * Test a browse forward and backward
+ */
+ @Test
+ public void testBrowseForwardBackwardExtremes() throws Exception
+ {
+ // Create a BTree with pages containing 4 elements
+ BTree<Integer, String> btree = new BTree<Integer, String>( "test", new IntSerializer(), new StringSerializer() );
+ btree.setPageSize( 4 );
+
+ for ( int i = 8; i < 13; i++ )
+ {
+ String strValue = "V" + i;
+ btree.insert( i, strValue );
+ }
+
+ // Start to browse in the middle
+ Cursor<Integer, String> cursor = btree.browseFrom( 8 );
+
+ assertTrue( cursor.hasNext() );
+
+ // Get 8
+ assertEquals( 8, cursor.next().getKey().intValue() );
+
+ // get 9
+ assertEquals( 9, cursor.next().getKey().intValue() );
+
+ // get 10
+ assertEquals( 10, cursor.next().getKey().intValue() );
+
+ // get 11
+ assertEquals( 11, cursor.next().getKey().intValue() );
+
+ // get 12 (now, we must have gone through at least 2 pages)
+ assertEquals( 12, cursor.next().getKey().intValue() );
+
+ assertFalse( cursor.hasNext() );
+ assertTrue( cursor.hasPrev() );
+
+ // Lets go backward. We should get the same value, as the next() call have incremented the counter
+ assertEquals( 12, cursor.prev().getKey().intValue() );
+
+ // Get 11
+ assertEquals( 11, cursor.prev().getKey().intValue() );
+
+ // Get 10
+ assertEquals( 10, cursor.prev().getKey().intValue() );
+
+ // Get 9
+ assertEquals( 9, cursor.prev().getKey().intValue() );
+
+ // Get 8
+ assertEquals( 8, cursor.prev().getKey().intValue() );
+
+ assertFalse(cursor.hasPrev());
+ assertTrue(cursor.hasNext());
+
+ cursor.close();
+ btree.close();
+ }
+
+ @Test
+ public void testNextAfterPrev() throws Exception
+ {
+ IntSerializer serializer = new IntSerializer();
+
+ BTreeConfiguration<Integer, Integer> config = new BTreeConfiguration<Integer, Integer>();
+ config.setName( "master" );
+ config.setPageSize( 4 );
+ config.setSerializers( serializer, serializer );
+ BTree<Integer, Integer> btree = new BTree<Integer, Integer>( config );
+
+ int i = 7;
+ for ( int k=0; k < i; k++ )
+ {
+ btree.insert( k, k );
+ }
+
+ // 3 is the last element of the first leaf
+ Cursor<Integer, Integer> cursor = btree.browseFrom(4);
+
+ assertTrue( cursor.hasNext() );
+ Tuple<Integer, Integer> tuple = cursor.next();
+ assertEquals( Integer.valueOf( 4 ), tuple.getKey() );
+ assertEquals( Integer.valueOf( 4 ), tuple.getValue() );
+
+ assertTrue( cursor.hasPrev() );
+ tuple = cursor.prev();
+ assertEquals( Integer.valueOf( 4 ), tuple.getKey() );
+ assertEquals( Integer.valueOf( 4 ), tuple.getValue() );
+
+ assertTrue( cursor.hasNext() );
+ tuple = cursor.next();
+ assertEquals( Integer.valueOf( 4 ), tuple.getKey() );
+ assertEquals( Integer.valueOf( 4 ), tuple.getValue() );
+ cursor.close();
+ }
+
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org