import java.io.PrintStream; import java.util.HashSet; public class TestNode { public static void main(String[] args) { System.out.println("**Equals Test**"); Node node1 = new Node(null, "(ABC)"); Node node2 = new Node(null, "(AB)"); try { if (node1.equals(node2)) System.out.println("Equals test failed."); else System.out.println("Equals test passed."); } catch (Exception e) { System.out.println("Equals test failed: + e"); } System.out.println("**Equals Test**"); Node node3 = new Node(null, "(ABC)"); Node node4 = new Node(null, "(AB)"); try { if (node4.equals(node3)) System.out.println("Equals test failed."); else System.out.println("Equals test passed."); } catch (Exception e) { System.out.println("Equals test failed: + e"); } System.out.println("**Equals Test**"); Node node5 = new Node(null, "((BC)A)"); Node node6 = new Node(null, "(A(CB))"); try { if (!node5.equals(node6)) System.out.println("Equals test failed."); else System.out.println("Equals test passed."); } catch (Exception e) { System.out.println("Equals test failed: + e"); } System.out.println("**Equals Test**"); Node node7 = new Node(null, "(A(BC))"); Node node8 = new Node(null, "(A(BCD))"); try { if (node7.equals(node8)) System.out.println("Equals test failed."); else System.out.println("Equals test passed."); } catch (Exception e) { System.out.println("Equals test failed: " + e); } System.out.println("**Search Test**"); Node node11 = new Node(null, "(A(B(C(DA))))"); Node node12 = new Node(null, "(A(B(CD)))"); try { HashSet result = new HashSet(); node12.deepSearch(node11, result); System.out.println(result); } catch (Exception e) { System.out.println("Search test failed: " + e); } System.out.println("**reducedCombine Test 1**"); System.out.println("Totally different."); Node node13 = new Node(null, "(DB)"); Node node14 = new Node(null, "(AC)"); try { HashSet result = node13.reducedCombine(node14); System.out.println(result); } catch (Exception e) { System.out.println("reducedCombine test failed: " + e); } System.out.println("**reducedCombine Test 2**"); System.out.println("Totally the same."); Node node15 = new Node(null, "(A(BDC))"); Node node16 = new Node(null, "((CDB)A)"); try { HashSet result = node16.reducedCombine(node15); System.out.println(result); } catch (Exception e) { System.out.println("reducedCombine test failed: " + e); } System.out.println("**reducedCombine Test 3**"); Node node17 = new Node(null, "(A(CD))"); Node node18 = new Node(null, "(A(B(CD)))"); HashSet result5 = node17.reducedCombine(node18); System.out.println(result5); System.out.println("**reducedCombine Test 4**"); Node node19 = new Node(null, "(A((BE)(CD)))"); Node node20 = new Node(null, "(A(B(CD)))"); HashSet result4 = node19.reducedCombine(node20); System.out.println(result4); System.out.println("**reducedCombine Test 5**"); Node node21 = new Node(null, "(A(A(B(CD))))"); Node node22 = new Node(null, "(A((BE)(C(DA))))"); HashSet result2 = node21.reducedCombine(node22); System.out.println(result2); System.out.println("**reducedCombine Test 6**"); Node node23 = new Node(null, "(A(B(CD)))"); Node node24 = new Node(null, "((A(B(CD)))(A(B(CD))))"); HashSet result1 = node24.reducedCombine(node23); System.out.println(result1); System.out.println("**reducedCombine Test 7**"); Node node25 = new Node(null, "(A(CD))"); Node node26 = new Node(null, "(A(B(C(DA))))"); HashSet result = node25.reducedCombine(node26); System.out.println(result); System.out.println("**reducedCombine Test 8**"); Node node27 = new Node(null, "(A(B(CD)))"); Node node28 = new Node(null, "(A(B(C(DA))))"); HashSet resultA = node27.reducedCombine(node28); System.out.println(resultA); System.out.println("**reducedCombine Test 9**"); Node node29 = new Node(null, "A"); Node node30 = new Node(null, "B"); HashSet resultB = node29.reducedCombine(node30); System.out.println(resultB); System.out.println("**reducedCombine Test 10**"); Node node31 = new Node(null, "(A(B(D((CE)(CD)))))"); Node node32 = new Node(null, "(F(C(DB)((D(BE))(CD))))"); HashSet resultC = node32.reducedCombine(node31); System.out.println(resultC); System.out.println("**reducedCombine Test 10b**"); HashSet resultD = node31.reducedCombine(node32); System.out.println(resultD); System.out.println("**reducedCombine Test 11**"); Node node33 = new Node(null, "((AB)(CD))"); Node node34 = new Node(null, "(E(F(GA)))"); HashSet result6 = node33.reducedCombine(node34); System.out.println(result6); System.out.println("**reducedCombine Test 12**"); Node node35 = new Node(null, "(A(B(CD)))"); Node node36 = new Node(null, "(D(C(BA)))"); HashSet result7 = node35.reducedCombine(node36); System.out.println(result7); System.out.println("**reducedCombine Test 13**"); Node node37 = new Node(null, "(A(CD))"); Node node38 = new Node(null, "(A(BE))"); HashSet result8 = node37.reducedCombine(node38); System.out.println(result8); System.out.println("**reducedCombine Test 14**"); Node node39 = new Node(null, "(A(CD)(BE))"); Node node40 = new Node(null, "(A((CD)(BE)))"); HashSet result9 = node39.reducedCombine(node40); System.out.println(result9); System.out.println("**reducedCombine Test 15**"); Node node41 = new Node(null, "((AC)B)"); Node node42 = new Node(null, "(A(AB))"); HashSet result10 = node42.reducedCombine(node41); System.out.println(result10); System.out.println("**reducedCombine Test 16**"); Node node43 = new Node(null, "((AC)BA)"); Node node44 = new Node(null, "(A(CB))"); HashSet result11 = node43.reducedCombine(node44); System.out.println(result11); System.out.println("**reducedCombine Test 17**"); Node node45 = new Node(null, "(A(BC))"); Node node46 = new Node(null, "(DB)"); HashSet result12 = node45.reducedCombine(node46); System.out.println(result12); System.out.println("**reducedCombine Test 18**"); Node node47 = new Node(null, "(((TH)(IS))(R(E(AL))))"); Node node48 = new Node(null, "(((TH)(IS))(T(RE)))"); HashSet result14 = node47.reducedCombine(node48); System.out.println(result14); } }