Added TestCases for LRUMap and SoftRefHashMap

git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130472 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
James Strachan 2001-05-06 11:10:36 +00:00
parent 485615107d
commit 9f673d4da6
3 changed files with 435 additions and 239 deletions

478
build.xml
View File

@ -1,239 +1,239 @@
<!-- $Id: build.xml,v 1.11 2001/05/04 15:51:57 rwaldhoff Exp $ --> <!-- $Id: build.xml,v 1.12 2001/05/06 11:10:36 jstrachan Exp $ -->
<project name="commons-collections" default="test" basedir="."> <project name="commons-collections" default="test" basedir=".">
<!-- patternset describing files to be copied from the doc directory --> <!-- patternset describing files to be copied from the doc directory -->
<patternset id="patternset-doc"/> <patternset id="patternset-doc"/>
<!-- patternset describing test classes --> <!-- patternset describing test classes -->
<patternset id="patternset-test-classes"> <patternset id="patternset-test-classes">
<include name="**/Test*.class"/> <include name="**/Test*.class"/>
</patternset> </patternset>
<!-- patternset describing non test classes --> <!-- patternset describing non test classes -->
<patternset id="patternset-non-test-classes"> <patternset id="patternset-non-test-classes">
<include name="**/*.class"/> <include name="**/*.class"/>
<exclude name="**/Test*.class"/> <exclude name="**/Test*.class"/>
</patternset> </patternset>
<!-- patternset describing non test source files (*.java, *html, etc.) --> <!-- patternset describing non test source files (*.java, *html, etc.) -->
<patternset id="patternset-javadocable-sources"> <patternset id="patternset-javadocable-sources">
<include name="**/*"/> <include name="**/*"/>
<exclude name="**/Test*.java"/> <exclude name="**/Test*.java"/>
</patternset> </patternset>
<!-- ######################################################### --> <!-- ######################################################### -->
<target name="init"> <target name="init">
<tstamp/> <tstamp/>
<!-- read properties from the build.properties, if any --> <!-- read properties from the build.properties, if any -->
<property name="component-propfile" value="${basedir}/build.properties"/> <property name="component-propfile" value="${basedir}/build.properties"/>
<property file="${component-propfile}"/> <property file="${component-propfile}"/>
<!-- read properties from the commons build.properties, if any --> <!-- read properties from the commons build.properties, if any -->
<property name="commons-propfile" value="${basedir}/../build.properties"/> <property name="commons-propfile" value="${basedir}/../build.properties"/>
<property file="${commons-propfile}"/> <property file="${commons-propfile}"/>
<!-- read properties from the ${user.home}/propfile, if any --> <!-- read properties from the ${user.home}/propfile, if any -->
<property name="user-propfile" value="${user.home}/build.properties"/> <property name="user-propfile" value="${user.home}/build.properties"/>
<property file="${user-propfile}"/> <property file="${user-propfile}"/>
<!-- command line classpath, if any --> <!-- command line classpath, if any -->
<property name="cp" value=""/> <property name="cp" value=""/>
<!-- now combine the classpaths --> <!-- now combine the classpaths -->
<property name="classpath" value="${cp}:${junit.jar}"/> <property name="classpath" value="${cp}:${junit.jar}"/>
<property name="name" value="commons-collections"/> <property name="name" value="commons-collections"/>
<property name="Name" value="Commons-Collections"/> <property name="Name" value="Commons-Collections"/>
<property name="Name-Long" value="Jakarta Commons Collections Package"/> <property name="Name-Long" value="Jakarta Commons Collections Package"/>
<!-- The current version number of this component --> <!-- The current version number of this component -->
<property name="component.version" value="0.02-dev"/> <property name="component.version" value="0.02-dev"/>
<property name="test.entry" value="org.apache.commons.collections.TestAll"/> <property name="test.entry" value="org.apache.commons.collections.TestAll"/>
<property name="test.failonerror" value="true" /> <property name="test.failonerror" value="true" />
<property name="test.runner" value="junit.textui.TestRunner" /> <property name="test.runner" value="junit.textui.TestRunner" />
<property name="workdir" value="${java.io.tmpdir}/buildtemp_${DSTAMP}${TSTAMP}"/> <property name="workdir" value="${java.io.tmpdir}/buildtemp_${DSTAMP}${TSTAMP}"/>
<property name="source" value="${basedir}"/> <property name="source" value="${basedir}"/>
<property name="source.src" value="${basedir}/src"/> <property name="source.src" value="${basedir}/src"/>
<property name="source.src.java" value="${source.src}/java"/> <property name="source.src.java" value="${source.src}/java"/>
<property name="source.src.test" value="${source.src}/test"/> <property name="source.src.test" value="${source.src}/test"/>
<property name="source.doc" value="${basedir}/doc"/> <property name="source.doc" value="${basedir}/doc"/>
<property name="dest" value="${basedir}/dist"/> <property name="dest" value="${basedir}/dist"/>
<property name="dest.classes" value="${dest}/classes"/> <property name="dest.classes" value="${dest}/classes"/>
<property name="dest.doc" value="${dest}/docs"/> <property name="dest.doc" value="${dest}/docs"/>
<property name="dest.doc.api" value="${dest.doc}/api"/> <property name="dest.doc.api" value="${dest.doc}/api"/>
<property name="dest.jardir" value="${dest}"/> <property name="dest.jardir" value="${dest}"/>
<property name="dest.jardir.jar" value="${dest.jardir}/${name}.jar"/> <property name="dest.jardir.jar" value="${dest.jardir}/${name}.jar"/>
<available property="available-doc" file="${source.doc}"/> <!-- does this module have docs? --> <available property="available-doc" file="${source.doc}"/> <!-- does this module have docs? -->
<available property="available-src-java" file="${source.src.java}"/> <!-- does this module have java src? --> <available property="available-src-java" file="${source.src.java}"/> <!-- does this module have java src? -->
<available property="available-src-test" file="${source.src.test}"/> <!-- does this module have test src? --> <available property="available-src-test" file="${source.src.test}"/> <!-- does this module have test src? -->
</target> </target>
<!-- ######################################################### --> <!-- ######################################################### -->
<target name="copy-javadoc-source" depends="init" if="available-src-java"> <target name="copy-javadoc-source" depends="init" if="available-src-java">
<mkdir dir="${javadoc-source-dir}"/> <mkdir dir="${javadoc-source-dir}"/>
<copy todir="${javadoc-source-dir}" filtering="no"> <copy todir="${javadoc-source-dir}" filtering="no">
<fileset dir="${source.src.java}"> <fileset dir="${source.src.java}">
<patternset refid="patternset-javadocable-sources"/> <patternset refid="patternset-javadocable-sources"/>
</fileset> </fileset>
</copy> </copy>
</target> </target>
<target name="copy-doc" depends="init" if="available-doc"> <target name="copy-doc" depends="init" if="available-doc">
<mkdir dir="${doc-source-dir}/${name}"/> <mkdir dir="${doc-source-dir}/${name}"/>
<copy todir="${doc-source-dir}/${name}" filtering="no"> <copy todir="${doc-source-dir}/${name}" filtering="no">
<fileset dir="${source.doc}"> <fileset dir="${source.doc}">
<patternset refid="patternset-doc"/> <patternset refid="patternset-doc"/>
</fileset> </fileset>
</copy> </copy>
</target> </target>
<!-- ######################################################### --> <!-- ######################################################### -->
<target name="clean" depends="init" description="removes generated files"> <target name="clean" depends="init" description="removes generated files">
<delete dir="${dest}"/> <delete dir="${dest}"/>
</target> </target>
<target name="clean-doc" depends="init,clean-javadoc"> <target name="clean-doc" depends="init,clean-javadoc">
<delete dir="${dest.doc}"/> <delete dir="${dest.doc}"/>
</target> </target>
<target name="clean-javadoc" depends="init"> <target name="clean-javadoc" depends="init">
<delete dir="${dest.doc.api}"/> <delete dir="${dest.doc.api}"/>
</target> </target>
<target name="clean-build" depends="init"> <target name="clean-build" depends="init">
<delete dir="${dest.classes}"/> <delete dir="${dest.classes}"/>
</target> </target>
<target name="clean-dist" depends="init"> <target name="clean-dist" depends="init">
<delete file="${dest.jardir.jar}"/> <delete file="${dest.jardir.jar}"/>
</target> </target>
<!-- ######################################################### --> <!-- ######################################################### -->
<target name="doc" depends="init,doc-top,doc-copy,doc-javadoc" description="generates javadocs and other documentation"> <target name="doc" depends="init,doc-top,doc-copy,doc-javadoc" description="generates javadocs and other documentation">
</target> </target>
<target name="doc-top" depends="init"> <target name="doc-top" depends="init">
<mkdir dir="${dest}"/> <mkdir dir="${dest}"/>
<copy todir="${dest}" file="../LICENSE"/> <copy todir="${dest}" file="../LICENSE"/>
</target> </target>
<target name="doc-copy" depends="init" if="available-doc"> <target name="doc-copy" depends="init" if="available-doc">
<mkdir dir="${dest.doc}"/> <mkdir dir="${dest.doc}"/>
<copy todir="${dest.doc}"> <copy todir="${dest.doc}">
<fileset dir="${source.doc}"> <fileset dir="${source.doc}">
<patternset refid="patternset-doc"/> <patternset refid="patternset-doc"/>
</fileset> </fileset>
</copy> </copy>
</target> </target>
<target name="doc-javadoc" depends="init" if="available-src-java"> <target name="doc-javadoc" depends="init" if="available-src-java">
<!-- copy all the non-test sources out to the work directory and javadoc that --> <!-- copy all the non-test sources out to the work directory and javadoc that -->
<mkdir dir="${workdir}"/> <mkdir dir="${workdir}"/>
<copy todir="${workdir}"> <copy todir="${workdir}">
<fileset dir="${source.src.java}"> <fileset dir="${source.src.java}">
<patternset refid="patternset-javadocable-sources"/> <patternset refid="patternset-javadocable-sources"/>
</fileset> </fileset>
</copy> </copy>
<mkdir dir="${dest.doc.api}"/> <mkdir dir="${dest.doc.api}"/>
<javadoc packagenames="org.*" <javadoc packagenames="org.*"
sourcepath="${workdir}" sourcepath="${workdir}"
classpath="${classpath}" destdir="${dest.doc.api}"
destdir="${dest.doc.api}" windowtitle="${Name-Long}"
windowtitle="${Name-Long}" doctitle="${Name-Long}"
doctitle="${Name-Long}" bottom="&lt;small&gt;Copyright &amp;copy; 2001 Apache Software Foundation. Documenation generated ${TODAY}&lt;/small&gt;."
bottom="&lt;small&gt;Copyright &amp;copy; 2001 Apache Software Foundation. Documenation generated ${TODAY}&lt;/small&gt;." public="true"
public="true" version="true"
version="true" author="true"
author="true" splitindex="false"
splitindex="false" nodeprecated="true"
nodeprecated="true" nodeprecatedlist="true"
nodeprecatedlist="true" notree="true"
notree="true" noindex="false"
noindex="false" nohelp="true"
nohelp="true" nonavbar="false"
nonavbar="false" serialwarn="false">
serialwarn="false"> <link href="http://java.sun.com/products/jdk/1.3/docs/api"/>
</javadoc> </javadoc>
<delete dir="${workdir}"/> <delete dir="${workdir}"/>
</target> </target>
<!-- ######################################################### --> <!-- ######################################################### -->
<target name="build" depends="init,build-java" description="compiles source files"/> <target name="build" depends="init,build-java" description="compiles source files"/>
<target name="build-java" depends="init" if="available-src-java"> <target name="build-java" depends="init" if="available-src-java">
<mkdir dir="${dest.classes}"/> <mkdir dir="${dest.classes}"/>
<javac destdir="${dest.classes}" <javac destdir="${dest.classes}"
srcdir="${source.src.java}" srcdir="${source.src.java}"
classpath="${classpath}" classpath="${classpath}"
debug="false" debug="false"
deprecation="true" deprecation="true"
optimize="true"/> optimize="true"/>
</target> </target>
<target name="build-test" depends="init,build-java" if="available-src-test"> <target name="build-test" depends="init,build-java" if="available-src-test">
<mkdir dir="${dest.classes}"/> <mkdir dir="${dest.classes}"/>
<javac destdir="${dest.classes}" <javac destdir="${dest.classes}"
srcdir="${source.src.test}" srcdir="${source.src.test}"
classpath="${classpath}" classpath="${classpath}"
debug="false" debug="false"
deprecation="true" deprecation="true"
optimize="true"/> optimize="true"/>
</target> </target>
<!-- ######################################################### --> <!-- ######################################################### -->
<target name="test" depends="build-test" if="test.entry" description="runs (junit) unit tests"> <target name="test" depends="build-test" if="test.entry" description="runs (junit) unit tests">
<!-- <!--
<junit printsummary="yes" fork="on" haltonfailure="yes"> <junit printsummary="yes" fork="on" haltonfailure="yes">
<formatter type="plain" usefile="false"/> <formatter type="plain" usefile="false"/>
<test name="${test.entry}"/> <test name="${test.entry}"/>
<classpath> <classpath>
<pathelement location="${dest.classes}" /> <pathelement location="${dest.classes}" />
<pathelement path="${classpath}" /> <pathelement path="${classpath}" />
<pathelement path="${java.class.path}" /> <pathelement path="${java.class.path}" />
</classpath> </classpath>
</junit> </junit>
--> -->
<java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}"> <java classname="${test.runner}" fork="yes" failonerror="${test.failonerror}">
<arg value="${test.entry}"/> <arg value="${test.entry}"/>
<classpath> <classpath>
<pathelement location="${dest.classes}" /> <pathelement location="${dest.classes}" />
<pathelement path="${classpath}" /> <pathelement path="${classpath}" />
<pathelement path="${java.class.path}" /> <pathelement path="${java.class.path}" />
</classpath> </classpath>
</java> </java>
</target> </target>
<!-- ######################################################### --> <!-- ######################################################### -->
<target name="dist" depends="dist-jar,doc" description="builds binary distribution"/> <target name="dist" depends="dist-jar,doc" description="builds binary distribution"/>
<target name="dist-jar" depends="build"> <target name="dist-jar" depends="build">
<mkdir dir="${dest.jardir}"/> <mkdir dir="${dest.jardir}"/>
<mkdir dir="${workdir}"/> <mkdir dir="${workdir}"/>
<copy todir="${workdir}"> <copy todir="${workdir}">
<fileset dir="${dest.classes}"> <fileset dir="${dest.classes}">
<patternset refid="patternset-non-test-classes"/> <patternset refid="patternset-non-test-classes"/>
</fileset> </fileset>
</copy> </copy>
<jar jarfile="${dest.jardir.jar}" manifest="${source.src}/conf/MANIFEST.MF"> <jar jarfile="${dest.jardir.jar}" manifest="${source.src}/conf/MANIFEST.MF">
<fileset dir="${workdir}"/> <fileset dir="${workdir}"/>
</jar> </jar>
<delete dir="${workdir}"/> <delete dir="${workdir}"/>
<delete dir="${dest.classes}"/> <delete dir="${dest.classes}"/>
</target> </target>
<!-- ######################################################### --> <!-- ######################################################### -->
</project> </project>

View File

@ -0,0 +1,98 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/TestLRUMap.java,v 1.1 2001/05/06 11:10:36 jstrachan Exp $
* $Revision: 1.1 $
* $Date: 2001/05/06 11:10:36 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.util.Map;
import java.util.HashMap;
/**
* @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
* @version $Id: TestLRUMap.java,v 1.1 2001/05/06 11:10:36 jstrachan Exp $
*/
public class TestLRUMap extends TestHashMap
{
public TestLRUMap(String testName) {
super(testName);
}
public static Test suite() {
return new TestSuite(TestLRUMap.class);
}
public static void main(String args[]) {
String[] testCaseName = { TestLRUMap.class.getName() };
junit.textui.TestRunner.main(testCaseName);
}
public Map makeMap() {
LRUMap map = new LRUMap(10);
return map;
}
public void setUp() {
map = (HashMap) makeMap();
}
}

View File

@ -0,0 +1,98 @@
/*
* $Header: /home/jerenkrantz/tmp/commons/commons-convert/cvs/home/cvs/jakarta-commons//collections/src/test/org/apache/commons/collections/Attic/TestSoftRefHashMap.java,v 1.1 2001/05/06 11:10:36 jstrachan Exp $
* $Revision: 1.1 $
* $Date: 2001/05/06 11:10:36 $
*
* ====================================================================
*
* The Apache Software License, Version 1.1
*
* Copyright (c) 1999-2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Commons", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*
*/
package org.apache.commons.collections;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import java.util.Map;
import java.util.HashMap;
/**
* @author <a href="mailto:jstrachan@apache.org">James Strachan</a>
* @version $Id: TestSoftRefHashMap.java,v 1.1 2001/05/06 11:10:36 jstrachan Exp $
*/
public class TestSoftRefHashMap extends TestHashMap
{
public TestSoftRefHashMap(String testName) {
super(testName);
}
public static Test suite() {
return new TestSuite(TestSoftRefHashMap.class);
}
public static void main(String args[]) {
String[] testCaseName = { TestSoftRefHashMap.class.getName() };
junit.textui.TestRunner.main(testCaseName);
}
public Map makeMap() {
SoftRefHashMap map = new SoftRefHashMap();
return map;
}
public void setUp() {
map = (HashMap) makeMap();
}
}