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