// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _000_instance = new _000();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _001_instance = new _001();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _010_instance = new _010();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _011_instance = new _011();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _100_instance = new _100();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _101_instance = new _101();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _110_instance = new _110();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _111_instance = new _111();


import static com.anjlab.sat3.SimpleTripletValueFactory._000_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._001_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._010_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._011_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._100_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._101_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._110_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._111_instance;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import java.util.Random;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import cern.colt.list.ObjectArrayList;
import cern.colt.map.OpenIntObjectHashMap;

                            5, -1, 6,    //              1 0 1    
                            -5, -1, -6,  //              1 1 1    
                            1, 6, -3,    //                0 0 1  
                            1, -6, -3,   //                0 1 1  
                            -1, 6, 3,    //                1 0 0  
                            -1, -6, -3,  //                1 1 1  
                            6, -3, -4,   //                  0 0 1
                            6, 3, -4,    //                  0 1 1
                            -6, -3, 4,   //                  1 1 0
                            -6, -3, -4   //                  1 1 1
                        });              //       VarCount: 8; ClausesCount: 21; TiersCount: 6
        
        assertEquals(21, s2.getClausesCount());
        
        Helper.prettyPrint(s2);
        
        //  List of ITabularFormula
        ObjectArrayList cts = new ObjectArrayList(new ITabularFormula[] {s1, s2});
        
        Helper.unify(cts);
        
        assertEquals(13, s1.getClausesCount());
        assertEquals(15, s2.getClausesCount());
        
        Helper.prettyPrint(s1);
        Helper.prettyPrint(s2);
        
        assertTrue(s1.getTier(0).contains(_001_instance));
        assertTrue(s1.getTier(0).contains(_101_instance));
        assertTrue(s1.getTier(1).contains(_010_instance));

// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _000_instance = new _000();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _001_instance = new _001();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _010_instance = new _010();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _011_instance = new _011();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _100_instance = new _100();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _101_instance = new _101();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _110_instance = new _110();
// 
// Path: 3-sat-core/src/main/java/com/anjlab/sat3/SimpleTripletValueFactory.java
// public static final ITripletValue _111_instance = new _111();


// Path: 3-sat-core/src/test/java/com/anjlab/sat3/TestHelper.java
import static com.anjlab.sat3.SimpleTripletValueFactory._000_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._001_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._010_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._011_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._100_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._101_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._110_instance;
import static com.anjlab.sat3.SimpleTripletValueFactory._111_instance;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.Properties;
import java.util.Random;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import cern.colt.list.ObjectArrayList;
import cern.colt.map.OpenIntObjectHashMap;

                            5, -1, 6,    //              1 0 1    
                            -5, -1, -6,  //              1 1 1    
                            1, 6, -3,    //                0 0 1  
                            1, -6, -3,   //                0 1 1  
                            -1, 6, 3,    //                1 0 0  
                            -1, -6, -3,  //                1 1 1  
                            6, -3, -4,   //                  0 0 1
                            6, 3, -4,    //                  0 1 1
                            -6, -3, 4,   //                  1 1 0
                            -6, -3, -4   //                  1 1 1
                        });              //       VarCount: 8; ClausesCount: 21; TiersCount: 6
        
        assertEquals(21, s2.getClausesCount());
        
        Helper.prettyPrint(s2);
        
        //  List of ITabularFormula
        ObjectArrayList cts = new ObjectArrayList(new ITabularFormula[] {s1, s2});
        
        Helper.unify(cts);
        
        assertEquals(13, s1.getClausesCount());
        assertEquals(15, s2.getClausesCount());
        
        Helper.prettyPrint(s1);
        Helper.prettyPrint(s2);
        
        assertTrue(s1.getTier(0).contains(_001_instance));
        assertTrue(s1.getTier(0).contains(_101_instance));
        assertTrue(s1.getTier(1).contains(_010_instance));

        assertTrue(s1.getTier(1).contains(_011_instance));
