5 import Analysis.Disjoint.*;
10 static public void main( String[] args ) {
16 System.out.println( "Testing components of disjoint reachability analysis..." );
20 System.out.println( "Testing completed successfully." );
24 System.out.println( "test 1..." );
26 ReachTuple rt11a = ReachTuple.factory( 11, true, ReachTuple.ARITY_ONE );
27 ReachTuple rt11b = ReachTuple.factory( 11, true, ReachTuple.ARITY_ONE );
28 ReachTuple rt12 = ReachTuple.factory( 12, true, ReachTuple.ARITY_ONE );
29 ReachTuple rt12z = ReachTuple.factory( 12, true, ReachTuple.ARITY_ZEROORMORE );
30 ReachTuple rt13 = ReachTuple.factory( 13, false, ReachTuple.ARITY_ONE );
32 assert rt11a.equals( rt11b );
33 assert rt11b.equals( rt11a );
34 assert rt11a == rt11b;
35 assert !rt11a.equals( rt12 );
36 assert !rt12.equals( rt11b );
38 assert Canonical.unionArity( rt11a, rt11b ).isCanonical();
39 assert Canonical.unionArity( rt11a, rt11b ).getArity() == ReachTuple.ARITY_ZEROORMORE;
41 assert Canonical.unionArity( rt12, rt12z ).isCanonical();
42 assert Canonical.unionArity( rt12, rt12z ).getArity() == ReachTuple.ARITY_ZEROORMORE;
44 assert Canonical.unionArity( rt13, rt13 ).isCanonical();
45 assert Canonical.unionArity( rt13, rt13 ).getArity() == ReachTuple.ARITY_ONE;
49 System.out.println( "test 2..." );
51 ReachTuple rt14 = ReachTuple.factory( 14, false, ReachTuple.ARITY_ONE );
52 ReachTuple rt15 = ReachTuple.factory( 15, true, ReachTuple.ARITY_ZEROORMORE );
54 ReachState s1 = ReachState.factory();
55 ReachState s2 = Canonical.union( s1, rt14 );
57 ReachState s3 = ReachState.factory();
58 ReachState s4 = Canonical.union( s3, rt15 );
60 ReachState s5 = ReachState.factory( rt14 );
62 ReachState s6 = ReachState.factory( rt15 );
64 ReachState s7 = Canonical.union( s2, s4 );
65 ReachState s8 = Canonical.union( s5, s6 );
71 assert !s1.equals( s7 );
72 assert !s8.equals( s5 );
76 System.out.println( "test 3..." );
78 ExistPred ept = ExistPred.factory();
79 ExistPred ep21a = ExistPred.factory( 21, null );
80 ExistPred ep21b = ExistPred.factory( 21, null );
81 ExistPred ep22 = ExistPred.factory( 22, null );
83 assert !ept.equals( ep21a );
84 assert ep21a.equals( ep21b );
85 assert ep21a == ep21b;
86 assert !ep22.equals( ep21b );
90 Canonical.add( ExistPredSet.factory(),
94 ExistPredSet eps2 = ExistPredSet.factory( ept );
95 ExistPredSet eps3 = ExistPredSet.factory( ep21a );
97 ExistPredSet eps4 = Canonical.join( eps2, eps3 );
99 assert eps1.equals( eps4 );