1 /* LongFPSetCacheTest
2 *
3 * $Id: LongFPSetCacheTest.java 3437 2005-05-06 02:49:04Z stack-sf $
4 *
5 * Created Wed Jan 21 09:00:29 CET 2004
6 *
7 * Copyright (C) 2004 Internet Archive.
8 *
9 * This file is part of the Heritrix web crawler (crawler.archive.org).
10 *
11 * Heritrix is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser Public License as published by
13 * the Free Software Foundation; either version 2.1 of the License, or
14 * any later version.
15 *
16 * Heritrix is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser Public License
22 * along with Heritrix; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */
25
26 package org.archive.util.fingerprint;
27
28 import junit.framework.Test;
29 import junit.framework.TestSuite;
30
31 /***
32 * JUnit test suite for LongFPSetCache
33 *
34 * @author <a href="mailto:me@jamesc.net">James Casey</a>
35 * @version $ Id:$
36 */
37 public class LongFPSetCacheTest extends LongFPSetTestCase {
38 /***
39 * Create a new LongFPSetCacheTest object
40 *
41 * @param testName the name of the test
42 */
43 public LongFPSetCacheTest(final String testName) {
44 super(testName);
45 }
46
47 /***
48 * run all the tests for LongFPSetCacheTest
49 *
50 * @param argv the command line arguments
51 */
52 public static void main(String argv[]) {
53 junit.textui.TestRunner.run(suite());
54 }
55
56 /***
57 * return the suite of tests for LongFPSetCacheTest
58 *
59 * @return the suite of test
60 */
61 public static Test suite() {
62 return new TestSuite(LongFPSetCacheTest.class);
63 }
64
65 LongFPSet makeLongFPSet() {
66 return new LongFPSetCache();
67 }
68
69 /***
70 * This is a cache buffer, which does not grow,
71 * but chucks out old values. Therefore it has a different behaviour
72 * from all the other LongFPSets. We do a different test here.
73 */
74
75 public void testCount() {
76 LongFPSet fpSet = new LongFPSetCache();
77 // TODO: for some reason, when run in a debugger,
78 // the cache-item-discard is glacially slow. It's
79 // reasonable when executing.) So, reducing the
80 // number of past-saturation tests in order to let
81 // full-unit-tests complete more quickly.
82 final int NUM = 800; // was 1000
83 final int MAX_ENTRIES = 768;
84
85 assertEquals("empty set to start", 0, fpSet.count());
86
87 for (int i = 1; i < NUM; ++i) {
88 fpSet.add((long) i);
89 assertEquals("correct num on add",
90 i<MAX_ENTRIES?i:MAX_ENTRIES, fpSet.count());
91 }
92 }
93
94 // TODO - implement test methods in LongFPSetCacheTest
95 }
96