all changes for official testing
[IRC.git] / Robust / src / Tests / disjoint / critical-regression-testing / test.java
1 import IR.*;
2 import IR.Flat.*;
3 import java.util.*;
4 import java.io.*;
5 import Analysis.Disjoint.*;
6
7
8 public class test {
9
10   static public void main( String[] args ) {
11     test t = new test();
12     t.execTests();
13   }
14
15   void execTests() {
16     System.out.println( "Testing components of disjoint reachability analysis..." );
17     t1();
18     t2();
19     t3();
20     System.out.println( "Testing completed successfully." );    
21   }
22
23   void t1() {
24     System.out.println( "test 1..." );    
25
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 );
31
32     assert rt11a.equals( rt11b );
33     assert rt11b.equals( rt11a );
34     assert rt11a == rt11b;
35     assert !rt11a.equals( rt12 );
36     assert !rt12.equals( rt11b );
37     
38     assert Canonical.unionArity( rt11a, rt11b ).isCanonical();
39     assert Canonical.unionArity( rt11a, rt11b ).getArity() == ReachTuple.ARITY_ZEROORMORE;
40
41     assert Canonical.unionArity( rt12, rt12z ).isCanonical();
42     assert Canonical.unionArity( rt12, rt12z ).getArity() == ReachTuple.ARITY_ZEROORMORE;
43
44     assert Canonical.unionArity( rt13, rt13 ).isCanonical();
45     assert Canonical.unionArity( rt13, rt13 ).getArity() == ReachTuple.ARITY_ONE;
46   }
47
48   void t2() {
49     System.out.println( "test 2..." );    
50
51     ReachTuple rt14 = ReachTuple.factory( 14, false, ReachTuple.ARITY_ONE );
52     ReachTuple rt15 = ReachTuple.factory( 15, true,  ReachTuple.ARITY_ZEROORMORE );
53
54     ReachState s1 = ReachState.factory();
55     ReachState s2 = Canonical.union( s1, rt14 );
56
57     ReachState s3 = ReachState.factory();
58     ReachState s4 = Canonical.union( s3, rt15 );
59
60     ReachState s5 = ReachState.factory( rt14 );
61
62     ReachState s6 = ReachState.factory( rt15 );
63
64     ReachState s7 = Canonical.union( s2, s4 );
65     ReachState s8 = Canonical.union( s5, s6 );
66
67     assert s1 == s3;
68     assert s2 == s5;
69     assert s4 == s6;
70     assert s7 == s8;
71     assert !s1.equals( s7 );
72     assert !s8.equals( s5 );
73   }
74
75   void t3() {
76     System.out.println( "test 3..." );    
77
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 );
82
83     assert !ept.equals( ep21a );
84     assert ep21a.equals( ep21b );
85     assert ep21a == ep21b;
86     assert !ep22.equals( ep21b );
87
88     ExistPredSet eps1 = 
89       Canonical.add( 
90                     Canonical.add( ExistPredSet.factory(), 
91                                    ept ),
92                     ep21a );
93
94     ExistPredSet eps2 = ExistPredSet.factory( ept );
95     ExistPredSet eps3 = ExistPredSet.factory( ep21a );
96
97     ExistPredSet eps4 = Canonical.join( eps2, eps3 );
98
99     assert eps1.equals( eps4 );
100   }
101
102 }