// Copyright (c) 1996, 1997, 1998 Bruno R. Preiss, P.Eng.
// $Author: brpreiss $
// $Date: 1998/12/14 02:52:01 $
// $RCSfile: Demo7.java,v $
// $Revision: 3.6 $
package Opus5;
/**
* Demonstration program that tests the following classes:
* SetAsArray,
* SetAsBitVector,
* MultisetAsArray,
* MultisetAsLinkedList,
* PartitionAsForest,
* PartitionAsForestV2, and
* PartitionAsForestV3.
* @see SetAsArray
* @see SetAsBitVector
* @see MultisetAsArray
* @see MultisetAsLinkedList
* @see PartitionAsForest
* @see PartitionAsForestV2
* @see PartitionAsForestV3
* @author Bruno R. Preiss, P.Eng.
* @version $Id: Demo7.java,v 3.6 1998/12/14 02:52:01 brpreiss Exp $
**/
public class Demo7
{
//[
final String copyright =
"@(#) Copyright (c) 1998 by Bruno R. Preiss, P.Eng.";
//]
/**
* Performs various tests on the specified sets.
* @param s1 A set to be tested.
* @param s2 A set to be tested.
* @param s3 A set to be tested.
**/
private static void testSet (Set s1, Set s2, Set s3)
{
for (int i = 0; i < 4; ++i)
s1.insert (new Int (i));
for (int i = 2; i < 6; ++i)
s2.insert (new Int (i));
for (int i = 0; i < 4; i += 2)
s3.insert (new Int (i));
Terminal.out.println (s1);
Terminal.out.println (s2);
Terminal.out.println (s3);
Terminal.out.println (s1.union (s2));
Terminal.out.println (s1.intersection (s3));
Terminal.out.println (s1.difference (s3));
Terminal.out.println ("Using enumeration: ");
Enumeration e = s3.getEnumeration ();
while (e.hasMoreElements ())
Terminal.out.print (" " + e.nextElement ());
Terminal.out.println ();
}
/**
* Performs various tests on the specified multisets.
* @param s1 A multiset to be tested.
* @param s2 A multiset to be tested.
* @param s3 A multiset to be tested.
**/
private static void testMultiset (Multiset s1, Multiset s2, Multiset s3)
{
for (int i = 0; i < 4; ++i)
s1.insert (new Int (i));
for (int i = 2; i < 6; ++i)
s2.insert (new Int (i));
for (int i = 0; i < 4; i += 2)
s3.insert (new Int (i));
Terminal.out.println (s1);
Terminal.out.println (s2);
Terminal.out.println (s3);
Terminal.out.println (s1.union (s2));
Terminal.out.println (s1.intersection (s3));
Terminal.out.println (s1.difference (s3));
Terminal.out.println ("Using enumeration: ");
Enumeration e = s3.getEnumeration ();
while (e.hasMoreElements ())
Terminal.out.print (" " + e.nextElement ());
Terminal.out.println ();
}
/**
* Performs various tests on the specified partition.
* @param p The partition to be tested.
**/
private static void testPartition (Partition p)
{
Terminal.out.println (p);
Set s2 = p.find (2);
Set s4 = p.find (4);
p.join (s2, s4);
Set s3 = p.find (3);
Set s4b = p.find (4);
p.join (s3, s4b);
Terminal.out.println (p);
}
/**
* The (static) main program.
* Invokes various test routines.
* @param args The command-line arguments. Ignored.
**/
public static void main (String[] args)
{
testSet (new SetAsArray (32),
new SetAsArray (32), new SetAsArray (32));
testSet (new SetAsBitVector (32),
new SetAsBitVector (32), new SetAsBitVector (32));
testMultiset (new MultisetAsArray (32),
new MultisetAsArray (32), new MultisetAsArray (32));
testMultiset (new MultisetAsLinkedList (32),
new MultisetAsLinkedList (32), new MultisetAsLinkedList (32));
testPartition (new PartitionAsForest (5));
testPartition (new PartitionAsForestV2 (5));
testPartition (new PartitionAsForestV3 (5));
}
}