Author: elecharny
Date: Sun Jul 22 06:06:31 2012
New Revision: 1364215
URL: http://svn.apache.org/viewvc?rev=1364215&view=rev
Log:
o Fixed a bug when we were deleting an element which key was present in the
root page
o Added some more tests
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/BTreeTest.java
Modified:
labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
URL:
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java?rev=1364215&r1=1364214&r2=1364215&view=diff
==============================================================================
--- labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
(original)
+++ labs/mavibot/trunk/mavibot/src/main/java/org/apache/mavibot/btree/Node.java
Sun Jul 22 06:06:31 2012
@@ -441,7 +441,14 @@ import java.util.LinkedList;
}
}
- newLeftMost = newNode.keys[0];
+ if ( newNode.keys[0] == mergedResult.getRemovedElement().getKey() )
+ {
+ newLeftMost = newNode.keys[0];
+ }
+ else
+ {
+ newLeftMost = mergedResult.getNewLeftMost();
+ }
// Create the result
RemoveResult<K, V> result = new RemoveResult<K, V>( newNode,
mergedResult.getRemovedElement(), newLeftMost );
Modified:
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/BTreeTest.java
URL:
http://svn.apache.org/viewvc/labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/BTreeTest.java?rev=1364215&r1=1364214&r2=1364215&view=diff
==============================================================================
---
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/BTreeTest.java
(original)
+++
labs/mavibot/trunk/mavibot/src/test/java/org/apache/mavibot/btree/BTreeTest.java
Sun Jul 22 06:06:31 2012
@@ -917,12 +917,66 @@ public class BTreeTest
{
BTree<Integer, String> btree = createMultiLevelBTreeHalfFull();
- // Case 1 : delete an element in the btree in the leftmost leaf
+ // Case 1 : delete the leftmost element in the btree in the leftmost
leaf
Tuple<Integer, String> removed = btree.delete( 2 );
assertEquals( 2, removed.getKey().intValue() );
assertEquals( "v2", removed.getValue() );
assertNull( btree.find( 2 ) );
+ // delete the third element in the first leaf
+ removed = btree.delete( 7 );
+ assertEquals( 7, removed.getKey().intValue() );
+ assertEquals( "v7", removed.getValue() );
+ assertNull( btree.find( 7 ) );
+
+ // Case 2 : Delete the second element in the leftmost leaf
+ removed = btree.delete( 6 );
+ assertEquals( 6, removed.getKey().intValue() );
+ assertEquals( "v6", removed.getValue() );
+ assertNull( btree.find( 6 ) );
+
+ // delete the third element in the first leaf
+ removed = btree.delete( 11 );
+ assertEquals( 11, removed.getKey().intValue() );
+ assertEquals( "v11", removed.getValue() );
+ assertNull( btree.find( 11 ) );
+
+ // Case 3 : delete the rightmost element in the btree in the rightmost
leaf
+ removed = btree.delete( 99 );
+ assertEquals( 99, removed.getKey().intValue() );
+ assertEquals( "v99", removed.getValue() );
+ assertNull( btree.find( 99 ) );
+
+ // delete the third element in the last leaf
+ removed = btree.delete( 98 );
+ assertEquals( 98, removed.getKey().intValue() );
+ assertEquals( "v98", removed.getValue() );
+ assertNull( btree.find( 98 ) );
+
+ // Case 2 : Delete the first element in the rightmost leaf
+ removed = btree.delete( 94 );
+ assertEquals( 94, removed.getKey().intValue() );
+ assertEquals( "v94", removed.getValue() );
+ assertNull( btree.find( 94 ) );
+
+ // delete the third element in the last leaf
+ removed = btree.delete( 95 );
+ assertEquals( 95, removed.getKey().intValue() );
+ assertEquals( "v95", removed.getValue() );
+ assertNull( btree.find( 95 ) );
+
+ // Case 5 : delete the leftmost element which is refered in the root
node
+ removed = btree.delete( 22 );
+ assertEquals( 22, removed.getKey().intValue() );
+ assertEquals( "v22", removed.getValue() );
+ assertNull( btree.find( 22 ) );
+
+ // delete the third element in the last leaf
+ removed = btree.delete( 27 );
+ assertEquals( 27, removed.getKey().intValue() );
+ assertEquals( "v27", removed.getValue() );
+ assertNull( btree.find( 27 ) );
+
System.out.println( btree );
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]