/* * This file is part of the Heritrix web crawler (crawler.archive.org). * * Licensed to the Internet Archive (IA) by one or more individual * contributors. * * The IA licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.archive.util.fingerprint; import junit.framework.TestCase; /** * Unit tests for ArrayLongFPCache. * * @author gojomo */ public class ArrayLongFPCacheTest extends TestCase { public void testAdd() { long testVal = 123456L; ArrayLongFPCache cache = new ArrayLongFPCache(); assertFalse("contains test value pre-add",cache.contains(testVal)); assertFalse("contains test value pre-add",cache.contains(-testVal)); cache.add(testVal); cache.add(-testVal); assertTrue("should contain after add",cache.contains(testVal)); assertTrue("should contain after add",cache.contains(-testVal)); } public void testContains() { long testVal1 = 123456L; long testVal2 = 9090909090L; long testVal3 = 76543210234567L; long testVal4 = 1L; ArrayLongFPCache cache = new ArrayLongFPCache(); cache.add(testVal1); cache.add(testVal2); cache.add(testVal3); cache.add(testVal4); assertTrue("should contain after add",cache.contains(testVal1)); assertTrue("should contain after add",cache.contains(testVal2)); assertTrue("should contain after add",cache.contains(testVal3)); assertTrue("should contain after add",cache.contains(testVal4)); } public void testReplacement() { ArrayLongFPCache cache = new ArrayLongFPCache(); for(long i=0; i<=ArrayLongFPCache.DEFAULT_SMEAR; i++) { cache.add(i*cache.cacheLength()+1); } assertFalse("contains value after overwrite",cache.contains(1L)); assertTrue("value not retained",cache.contains(cache.cacheLength()+1)); } public void testRemove() { long testVal = 4516500024601L; ArrayLongFPCache cache = new ArrayLongFPCache(); cache.add(testVal); cache.add(-testVal); assertTrue("should contain after add",cache.contains(testVal)); assertTrue("should contain after add",cache.contains(-testVal)); cache.remove(testVal); cache.remove(-testVal); assertFalse("contains test value after remove",cache.contains(testVal)); assertFalse("contains test value after remove",cache.contains(-testVal)); } }