01: /*
02: This source file is part of Smyle, a database library.
03: For up-to-date information, see http://www.drjava.de/smyle
04: Copyright (C) 2001 Stefan Reich (doc@drjava.de)
05:
06: This library is free software; you can redistribute it and/or
07: modify it under the terms of the GNU Lesser General Public
08: License as published by the Free Software Foundation; either
09: version 2.1 of the License, or (at your option) any later version.
10:
11: This library is distributed in the hope that it will be useful,
12: but WITHOUT ANY WARRANTY; without even the implied warranty of
13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14: Lesser General Public License for more details.
15:
16: You should have received a copy of the GNU Lesser General Public
17: License along with this library; if not, write to the Free Software
18: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19:
20: For full license text, see doc/license/lgpl.txt in this distribution
21: */
22:
23: package drjava.smyle.tests;
24:
25: import java.util.*;
26: import junit.framework.*;
27: import drjava.smyle.core.*;
28: import drjava.smyle.testtypes.*;
29:
30: public class PersistentBTreeTest extends BTreeTestBase {
31: public PersistentBTreeTest(String name) {
32: super (name);
33: }
34:
35: DefaultChunkManager cm;
36: PersistentBTree<String, String> pTree;
37:
38: protected BTree<String, String> createTree() throws Exception {
39: cm = new DefaultChunkManager(new MemoryDisk(),
40: DiskStore.VERSION);
41: pTree = new PersistentBTree<String, String>(m, comparator,
42: new StringMarDemar(), new StringMarDemar(), cm, null);
43: return pTree;
44: }
45:
46: protected void additionalChecks() throws Exception {
47: super .additionalChecks();
48: ChunkRef master = pTree.flush();
49: tree = pTree = new PersistentBTree<String, String>(m,
50: comparator, new StringMarDemar(), new StringMarDemar(),
51: cm, master);
52: }
53:
54: int numChunks() throws Exception {
55: pTree.flush();
56: BitSet whiteList = new BitSet();
57: pTree.collectChunks(whiteList);
58: cm.deleteEverythingBut(whiteList);
59: /*int n = 0;
60: for (int i = 0; i < whiteList.size(); i++)
61: if (whiteList.get(i)) ++n;
62: System.out.println("White list entries: "+n);*/
63: return cm.numChunks();
64: }
65:
66: public void testRandomInserts() throws Exception {
67: int chunks = numChunks();
68: super .testRandomInserts();
69: assertEquals("Number of chunks", chunks, numChunks());
70: }
71: }
|