DefaultBPlusTree implements BPlusTree<K, V> { @Override public boolean put(K key, V value) { return put(key, value, null); } DefaultBPlusTree(int m); @Override int getM(); @Override int getKeySum(); @Override int getNodeSum(); @Override int getTreeLevel(); @Override BNode<K, V> getRootNode(); @Override BNode<K, V> getFirstLeafNode(); @Override BNode<K, V> getLastLeafNode(); @Override boolean put(K key, V value); @Override boolean put(K key, V value, TreeCallBack<K, V> callback); @Override V get(K key); @Override boolean delete(K key); @Override boolean delete(K key, TreeCallBack<K, V> callback); @SuppressWarnings("unchecked") @Override DefaultBPlusTree<K, V> clone(); void updateNewTree(DefaultBPlusTree<K, V> newTree, BNode<K, V> newRootNode); @Override String toString(); @Override void traverseAllNodes(TraverseCallBack<K, V> traverseCallBack); void traverseAllNodesImpl(BNode<K, V> node, TraverseCallBack<K, V> traverseCallBack); @SuppressWarnings("unchecked") @Override Entry<K, V>[] entryArray();  }
@Test public void testTreePut() { for (int i = 1; i <= 100; ++i) { Assert.assertTrue(tree.put(i, i + "")); } }