This is the mail archive of the
mauve-patches@sourceware.org
mailing list for the Mauve project.
FYI: some new BitSet tests
- From: David Gilbert <david dot gilbert at object-refinery dot com>
- To: mauve-patches at sources dot redhat dot com
- Date: Wed, 12 Apr 2006 11:55:00 +0100
- Subject: FYI: some new BitSet tests
This patch (committed) adds a few extra tests for the BitSet class. There is one
failure (in the get(int, int) method), I'll submit a bug report for it shortly.
2006-04-12 David Gilbert <david.gilbert@object-refinery.com>
* gnu/testlet/java/util/BitSet/clear.java: New file,
* gnu/testlet/java/util/BitSet/flip.java: New file,
* gnu/testlet/java/util/BitSet/get.java: New file,
* gnu/testlet/java/util/BitSet/Get.java: Merged with get.java.
Regards,
Dave
Index: gnu/testlet/java/util/BitSet/Get.java
===================================================================
RCS file: gnu/testlet/java/util/BitSet/Get.java
diff -N gnu/testlet/java/util/BitSet/Get.java
--- gnu/testlet/java/util/BitSet/Get.java 9 May 2005 21:37:07 -0000 1.1
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,52 +0,0 @@
-// Tags: JDK1.4
-
-/* Copyright (C) 2005 David Daney
-
- 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.java.util.BitSet;
-
-import gnu.testlet.Testlet;
-import gnu.testlet.TestHarness;
-import java.util.BitSet;
-
-public class Get implements Testlet
-{
- public void test ( TestHarness harness )
- {
- BitSet o = new BitSet(70);
- o.set(1);
- o.set(2);
- o.set(63);
- o.set(64);
-
- BitSet s1 = o.get(0, 9);
- harness.check(s1.cardinality(), 2);
- harness.check(s1.get(0), false);
- harness.check(s1.get(1), true);
- harness.check(s1.get(2), true);
- harness.check(s1.get(3), false);
-
- BitSet s2 = o.get(60, 69);
- harness.check(s2.cardinality(), 2);
- harness.check(s2.get(2), false);
- harness.check(s2.get(3), true);
- harness.check(s2.get(4), true);
- harness.check(s2.get(5), false);
- }
-}
Index: gnu/testlet/java/util/BitSet/clear.java
===================================================================
RCS file: gnu/testlet/java/util/BitSet/clear.java
diff -N gnu/testlet/java/util/BitSet/clear.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/util/BitSet/clear.java 12 Apr 2006 10:41:54 -0000
@@ -0,0 +1,109 @@
+/* clear.java -- some checks for the clear() methods in the BitSet class.
+ Copyright (C) 2006 David Gilbert <david.gilbert@object-refinery.com>
+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, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.4
+
+package gnu.testlet.java.util.BitSet;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.BitSet;
+
+public class clear implements Testlet
+{
+ public void test(TestHarness harness)
+ {
+ test1(harness);
+ test2(harness);
+ test3(harness);
+ }
+
+ private void test1(TestHarness harness)
+ {
+ harness.checkPoint("()");
+ BitSet bs = new BitSet(8);
+ bs.set(1);
+ bs.clear();
+ harness.check(bs.isEmpty());
+ }
+
+ private void test2(TestHarness harness)
+ {
+ harness.checkPoint("(int)");
+ BitSet bs = new BitSet(7);
+ bs.set(6);
+ bs.clear(6);
+ harness.check(bs.isEmpty());
+
+ boolean pass = false;
+ try
+ {
+ bs.clear(-1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ bs.clear(7);
+ harness.check(bs.nextClearBit(7), 7);
+ }
+
+ private void test3(TestHarness harness)
+ {
+ harness.checkPoint("(int, int)");
+ BitSet bs = new BitSet(9);
+ bs.set(3);
+ bs.set(4);
+ bs.set(5);
+ bs.clear(2, 4);
+ harness.check(!bs.get(3));
+ harness.check(bs.get(4));
+ harness.check(bs.get(5));
+
+ bs.clear(5, 5);
+ harness.check(bs.get(5));
+
+ boolean pass = false;
+ try
+ {
+ bs.clear(-1, 2);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ pass = false;
+ try
+ {
+ bs.clear(2, 1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+ }
+}
Index: gnu/testlet/java/util/BitSet/flip.java
===================================================================
RCS file: gnu/testlet/java/util/BitSet/flip.java
diff -N gnu/testlet/java/util/BitSet/flip.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/util/BitSet/flip.java 12 Apr 2006 10:41:54 -0000
@@ -0,0 +1,93 @@
+/* flip.java -- some checks for the flip() method in the BitSet clas.
+ Copyright (C) 2006 David Gilbert <david.gilbert@object-refinery.com>
+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, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.4
+
+package gnu.testlet.java.util.BitSet;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.BitSet;
+
+public class flip implements Testlet
+{
+ public void test(TestHarness harness)
+ {
+ test1(harness);
+ test2(harness);
+ }
+
+ public void test1(TestHarness harness)
+ {
+ harness.checkPoint("(int)");
+ BitSet bs = new BitSet(17);
+ bs.flip(11);
+ harness.check(bs.nextSetBit(0), 11);
+
+ boolean pass = false;
+ try
+ {
+ bs.flip(-1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+ }
+
+ public void test2(TestHarness harness)
+ {
+ harness.checkPoint("(int, int)");
+ BitSet bs = new BitSet(21);
+ bs.flip(3, 5);
+ harness.check(!bs.get(2));
+ harness.check(bs.get(3));
+ harness.check(bs.get(4));
+ harness.check(!bs.get(5));
+
+ bs.flip(4, 4);
+ harness.check(bs.get(4));
+
+ boolean pass = false;
+ try
+ {
+ bs.flip(-1, 1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ pass = false;
+ try
+ {
+ bs.flip(2, 1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+ }
+}
Index: gnu/testlet/java/util/BitSet/get.java
===================================================================
RCS file: gnu/testlet/java/util/BitSet/get.java
diff -N gnu/testlet/java/util/BitSet/get.java
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gnu/testlet/java/util/BitSet/get.java 12 Apr 2006 10:41:54 -0000
@@ -0,0 +1,126 @@
+/* get.java -- some checks for the get() method in the BitSet class.
+ Copyright (C) 2005 David Daney
+ Copyright (C) 2006 David Gilbert <david.gilbert@object-refinery.com>
+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, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+*/
+
+// Tags: JDK1.4
+
+package gnu.testlet.java.util.BitSet;
+
+import gnu.testlet.TestHarness;
+import gnu.testlet.Testlet;
+
+import java.util.BitSet;
+
+public class get implements Testlet
+{
+ public void test(TestHarness harness)
+ {
+ test1(harness);
+ test2(harness);
+ testGeneral(harness);
+ }
+
+ private void test1(TestHarness harness)
+ {
+ harness.checkPoint("(int)");
+ BitSet bs = new BitSet();
+ bs.set(0);
+ bs.set(2);
+ harness.check(bs.get(0));
+ harness.check(!bs.get(1));
+ harness.check(bs.get(2));
+ harness.check(!bs.get(3));
+
+ boolean pass = false;
+ try
+ {
+ bs.get(-1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+ }
+
+ private void test2(TestHarness harness)
+ {
+ harness.checkPoint("(int, int)");
+ BitSet bs1 = new BitSet();
+ bs1.set(3);
+ bs1.set(4);
+ bs1.set(5);
+ BitSet bs2 = bs1.get(2, 5);
+ harness.check(!bs2.get(0));
+ harness.check(bs2.get(1));
+ harness.check(bs2.get(2));
+ harness.check(!bs2.get(3));
+
+ BitSet bs3 = bs1.get(3, 3);
+ harness.check(bs3.isEmpty());
+
+ boolean pass = false;
+ try
+ {
+ bs3 = bs1.get(-1, 1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+
+ pass = false;
+ try
+ {
+ bs3 = bs1.get(3, 1);
+ }
+ catch (IndexOutOfBoundsException e)
+ {
+ pass = true;
+ }
+ harness.check(pass);
+ }
+
+ private void testGeneral(TestHarness harness)
+ {
+ harness.checkPoint("testGeneral()");
+ BitSet o = new BitSet(70);
+ o.set(1);
+ o.set(2);
+ o.set(63);
+ o.set(64);
+
+ BitSet s1 = o.get(0, 9);
+ harness.check(s1.cardinality(), 2);
+ harness.check(s1.get(0), false);
+ harness.check(s1.get(1), true);
+ harness.check(s1.get(2), true);
+ harness.check(s1.get(3), false);
+
+ BitSet s2 = o.get(60, 69);
+ harness.check(s2.cardinality(), 2);
+ harness.check(s2.get(2), false);
+ harness.check(s2.get(3), true);
+ harness.check(s2.get(4), true);
+ harness.check(s2.get(5), false);
+ }
+}