This is the mail archive of the mauve-patches@sourceware.org mailing list for the Mauve project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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);
+  }
+}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]