NodeTest.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. package com.pact.test;
  2. import static org.junit.jupiter.api.Assertions.*;
  3. import com.pact.Node;
  4. import com.pact.NodePair;
  5. import org.junit.jupiter.api.Test;
  6. import java.util.HashSet;
  7. import java.util.List;
  8. class NodeTest {
  9. @Test
  10. void equalsTest1(){
  11. Node node1 = new Node(null, "(ABC)");
  12. Node node2 = new Node(null, "(AB)");
  13. assertFalse(node1.equals(node2));
  14. }
  15. @Test
  16. void equalsTest2(){
  17. Node node1 = new Node(null, "(ABC)");
  18. Node node2 = new Node(null, "(AB)");
  19. assertFalse(node2.equals(node1));
  20. }
  21. @Test
  22. void equalsTest3(){
  23. Node node1 = new Node(null, "((BC)A)");
  24. Node node2 = new Node(null, "(A(CB))");
  25. assertTrue(node1.equals(node2));
  26. }
  27. @Test
  28. void equalsTest4(){
  29. Node node1 = new Node(null, "(A(BC))");
  30. Node node2 = new Node(null, "(A(BCD))");
  31. assertFalse(node1.equals(node2));
  32. }
  33. @Test
  34. void searchTest1() {
  35. Node node1 = new Node(null, "(A(B(C(DA))))");
  36. Node node2 = new Node(null, "(A(B(CD)))");
  37. List<NodePair> result = node2.deepSearch(node1);
  38. System.out.println(result);
  39. }
  40. private void reducedCombineTest(String s1, String s2, String sResult){
  41. Node node1 = new Node(null, s1);
  42. Node node2 = new Node(null, s2);
  43. HashSet<Node> results = Node.reducedCombine(node1, node2);
  44. for(Node result : results)
  45. System.out.println("" + node1 + " + " + node2 + " => " + result);
  46. assertTrue(results.size() == 1);
  47. Node result = results.iterator().next();
  48. assertEquals(new Node(null, sResult), result);
  49. }
  50. private void reducedCombineTest(String s1, String s2, String[] sResults){
  51. Node node1 = new Node(null, s1);
  52. Node node2 = new Node(null, s2);
  53. HashSet<Node> results = Node.reducedCombine(node1, node2);
  54. for(Node result : results)
  55. System.out.println("" + node1 + " + " + node2 + " => " + result);
  56. assertTrue(results.size() == sResults.length);
  57. for (String sResult : sResults) {
  58. Node testNode = new Node(null, sResult);
  59. boolean found = false;
  60. for(Node node : results) {
  61. if(testNode.equals(node)) {
  62. found = true;
  63. break;
  64. }
  65. }
  66. assertTrue(found);
  67. }
  68. }
  69. @Test
  70. void reducedCombineTest1() {
  71. reducedCombineTest("(DB)", "(AC)","((DB)(AC))");
  72. }
  73. @Test
  74. void reducedCombineTest2() {
  75. reducedCombineTest("(A(BDC))", "((CDB)A)", "(A(BDC))");
  76. }
  77. @Test
  78. void reducedCombineTest3() {
  79. reducedCombineTest("(A(CD))", "(A(B(CD)))", "(A(B(CD)))");
  80. }
  81. @Test
  82. void reducedCombineTest4() {
  83. reducedCombineTest("(A((BE)(CD)))", "(A(B(CD)))", "(A((BE)(CD)))");
  84. }
  85. @Test
  86. void reducedCombineTest5() {
  87. reducedCombineTest("(A(A(B(CD))))", "(A((BE)(C(DA))))", "((((BE)(C(DA)))A)A)");
  88. }
  89. @Test
  90. void reducedCombineTest6() {
  91. reducedCombineTest("(A(B(CD)))", "((A(B(CD)))(A(B(CD))))", "(A(B(CD)))");
  92. }
  93. @Test
  94. void reducedCombineTest7() {
  95. reducedCombineTest("(A(CD))", "(A(B(C(DA))))", "(A(B(C(DA))))");
  96. }
  97. @Test
  98. void reducedCombineTest8() {
  99. reducedCombineTest("(A(B(CD)))", "(A(B(C(DA))))", "(A(B(C(DA))))");
  100. }
  101. @Test
  102. void reducedCombineTest9() {
  103. reducedCombineTest("A", "B", "(AB)");
  104. }
  105. @Test
  106. void reducedCombineTest10() {
  107. reducedCombineTest("(A(B(D((CE)(CD)))))", "(F(C(DB)((D(BE))(CD))))", "(((((CD)((ECB)D))C(DB))BF)A)");
  108. }
  109. @Test
  110. void reducedCombineTest10b() {
  111. reducedCombineTest("(A(B(D((CE)(CD)))))", "(F(C(DB)((D(BE))(CD))))", "(((((CD)((ECB)D))C(DB))BF)A)");
  112. }
  113. @Test
  114. void reducedCombineTest11() {
  115. reducedCombineTest("((AB)(CD))", "(E(F(GA)))", "(((AB)(CD))(E(F(GA))))");
  116. }
  117. @Test
  118. void reducedCombineTest12() {
  119. reducedCombineTest("(A(B(CD)))", "(D(C(BA)))", "((A(B(CD)))(D(C(BA))))");
  120. }
  121. @Test
  122. void reducedCombineTest13() {
  123. reducedCombineTest("(A(CD))", "(A(BE))", "(A(CD)(BE))");
  124. }
  125. @Test
  126. void reducedCombineTest14() {
  127. reducedCombineTest("(A(CD)(BE))", "(A((CD)(BE)))", "(A((CD)(BE)))");
  128. }
  129. @Test
  130. void reducedCombineTest15() {
  131. String results[] = {"((AC)(AB))", "(((AC)B)A)"};
  132. reducedCombineTest("((AC)B)", "(A(AB))", results);
  133. }
  134. @Test
  135. void reducedCombineTest16() {
  136. String results[] = {"(((BA)C)A)", "(((CA)B)A)"};
  137. reducedCombineTest("((AC)BA)", "(A(CB))", results);
  138. }
  139. @Test
  140. void reducedCombineTest17() {
  141. reducedCombineTest("(A(BC))", "(DB)", "((A(BC))(DB))");
  142. }
  143. @Test
  144. void reducedCombineTest18() {
  145. reducedCombineTest("(((TH)(IS))(R(E(AL))))", "(((TH)(IS))(T(RE)))",
  146. "(((TH)(IS))(((E(AL))R)T))");
  147. }
  148. }