This is the mail archive of the
mauve-discuss@sourceware.cygnus.com
mailing list for the Mauve project.
BitSet test
- To: mauve <mauve-discuss@sourceware.cygnus.com>
- Subject: BitSet test
- From: Artur Biesiadowski <abies@pg.gda.pl>
- Date: Wed, 03 Feb 1999 15:33:00 +0100
Attached is test for JDK1.0 BitSet. There are some new methods in 1.2,
but as it is not avail on linux...
BTW, mauve check rules are very counter-intuitive for me. I was
supposing that with
make KEYS='!java java.util.BitSet' check
I'll be able to run only my test. Actual result was to run all tests. I
was trying to give these options in mauve-something file, no luck. I've
ended up with compiling by hand and running through make check with hand
edited 'classes' file
Artur
// Taqs: JDK1.0
package gnu.testlet.java.util.BitSet;
import gnu.testlet.Testlet;
import gnu.testlet.TestHarness;
import java.util.BitSet;
public class jdk10 implements Testlet
{
TestHarness h;
public void test ( TestHarness harness )
{
h = harness;
BitSet b1, b2, b3, b4, b5;
h.checkPoint("Clone/Equals");
b1 = new BitSet();
b2 = (BitSet)b1.clone();
h.check( trulyEquals(b1,b2) );
b1 = new BitSet(100);
h.check( trulyEquals(b1,b2) );
b1.set(5);
h.check( !trulyEquals(b1,b2) );
b2 = (BitSet)b1.clone();
h.check( trulyEquals(b1,b2));
h.check(!b2.equals(null));
h.checkPoint("NegativeSize");
try {
b1 = new BitSet(-1);
h.check(false);
} catch ( NegativeArraySizeException e )
{
h.check(true);
}
h.checkPoint("Set/Clear/Get");
b1 = new BitSet();
b1.set(1);
b1.set(200);
b1.set(0);
h.check(b1.get(0));
h.check(b1.get(1));
h.check(!b1.get(2));
h.check(b1.get(200));
b1.clear(0);
h.check(!b1.get(0));
h.checkPoint("Set/Clear/Get negative index");
try {
b1.set(-1);
h.check(false);
} catch ( IndexOutOfBoundsException e )
{
h.check(true);
}
try {
b1.get(-1);
h.check(false);
} catch ( IndexOutOfBoundsException e )
{
h.check(true);
}
try {
b1.clear(-1);
h.check(false);
} catch ( IndexOutOfBoundsException e )
{
h.check(true);
}
h.checkPoint("toString");
h.check(b1.toString().equals("{1, 200}"));
b1.set(2);
b1.set(11);
h.check(b1.toString().equals("{1, 2, 11, 200}"));
b2 = new BitSet(100);
h.check(b2.toString().equals("{}"));
h.checkPoint("Hascode");
h.check(b1.hashCode() == 2260);
h.check(b2.hashCode() == 1234);
h.checkPoint("And/Or/Xor");
b3 = new BitSet();
b2.and(b1);
h.check( trulyEquals(b2,b3) );
b2.or(b1);
h.check( trulyEquals(b2,b1) );
b2.xor(b2);
h.check( trulyEquals(b2,b3) );
b2.xor(b1);
b3.or(b1);
h.check( trulyEquals(b2,b3) );
h.checkPoint("Size");
h.check ( b3.size() > 0 );
h.checkPoint("NullPointerExceptions");
try {
b1.and(null);
h.check(false);
} catch ( NullPointerException e )
{
h.check(true);
}
try {
b1.or(null);
h.check(false);
} catch ( NullPointerException e )
{
h.check(true);
}
try {
b1.xor(null);
h.check(false);
} catch ( NullPointerException e )
{
h.check(true);
}
}
private boolean trulyEquals( BitSet b1, BitSet b2 )
{
boolean e1 = b1.equals(b2);
boolean e2 = true;
for ( int i = 0; i < 300; i++ )
{
if ( b1.get(i) != b2.get(i) )
e2 = false;
}
if ( e1 != e2 )
h.check(false, "BitSet.equals is wrong");
else
h.check(true);
return e2;
}
}