// Tags: JDK1.0 /* Copyright (C) 1999 Artur Biesiadowski This file is part of Mauve. Mauve is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. Mauve is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Mauve; see the file COPYING. If not, write to the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package gnu.testlet.wonka.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; h.setclass("java.util.BitSet"); 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("{}")); b2.set(1); h.check(b2.toString().equals("{1}")); h.checkPoint("Hashcode"); h.check(b1.hashCode() == 2260); b3 = new BitSet(); h.check(b3.hashCode() == 1234); h.checkPoint("And/Or/Xor"); b2.set(1); b2.set(3); b2.set(200); b2.set(300); b2.and(b1); h.check( b2.toString(),"{1, 200}" ); b1.set(17); b2.set(15); b2.or(b1); h.check( b2.toString(), "{1, 2, 11, 15, 17, 200}" ); b2.xor(b2); h.check( b2.toString(), "{}"); 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; } h.check (e1 == e2); return e2; } }