From d88837ba3e5d0b187696112f42d4aa17cfd6ad7f Mon Sep 17 00:00:00 2001 From: mdb Date: Thu, 16 May 2002 22:15:19 +0000 Subject: [PATCH] Beefed up unit test. git-svn-id: https://samskivert.googlecode.com/svn/trunk@748 6335cc39-0255-0410-8fd6-9bcaacd3b74c --- .../com/samskivert/util/ArrayIntSetTest.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/projects/samskivert/tests/src/java/com/samskivert/util/ArrayIntSetTest.java b/projects/samskivert/tests/src/java/com/samskivert/util/ArrayIntSetTest.java index 90be4476..99db011c 100644 --- a/projects/samskivert/tests/src/java/com/samskivert/util/ArrayIntSetTest.java +++ b/projects/samskivert/tests/src/java/com/samskivert/util/ArrayIntSetTest.java @@ -1,5 +1,5 @@ // -// $Id: ArrayIntSetTest.java,v 1.3 2002/05/16 20:50:31 mdb Exp $ +// $Id: ArrayIntSetTest.java,v 1.4 2002/05/16 22:15:19 mdb Exp $ // // samskivert library - useful routines for java programs // Copyright (C) 2001 Michael Bayne @@ -21,6 +21,7 @@ package com.samskivert.util; import java.util.Arrays; +import java.util.Random; import junit.framework.Test; import junit.framework.TestCase; @@ -37,13 +38,7 @@ public class ArrayIntSetTest extends TestCase public void runTest () { ArrayIntSet set = new ArrayIntSet(); - set.add(3); - set.add(5); - set.add(5); - set.add(9); - set.add(5); - set.add(7); - set.add(1); + set.add(new int[] { 3, 5, 5, 9, 5, 7, 1 }); int[] values = { 1, 3, 5, 7, 9 }; int[] setvals = set.toIntArray(); @@ -68,10 +63,42 @@ public class ArrayIntSetTest extends TestCase // make sure that retainAll returns false if we do something that // doesn't modify the set assertTrue("retain didn't modify", !set1.retainAll(set3)); + + Random rando = new Random(); + for (int i = 0; i < 1000; i++) { + ArrayIntSet s1 = new ArrayIntSet(); + ArrayIntSet s2 = new ArrayIntSet(); + ArrayIntSet s3 = new ArrayIntSet(); + + // add some odd numbers to all three sets + for (int c = 0; c < 100; c++) { + int r = rando.nextInt(5000) * 2 + 1; + s1.add(r); + s2.add(r); + s3.add(r); + } + + // now add some even numbers to each of the first two sets in + // non-overlapping ranges + for (int c = 0; c < 100; c++) { + s1.add(rando.nextInt(5000)*2); + s2.add(rando.nextInt(5000)*2 + 15000); + } + + // now ensure that s1.retainAll(s2) equals s3 + s1.retainAll(s2); + assertTrue("random intersection", s1.equals(s3)); + } } public static Test suite () { return new ArrayIntSetTest(); } + + public static void main (String[] args) + { + ArrayIntSetTest test = new ArrayIntSetTest(); + test.runTest(); + } }