作者 crossoverJie

:white_check_mark: Adding tests.

@@ -18,6 +18,10 @@ public class TrieTree { @@ -18,6 +18,10 @@ public class TrieTree {
18 * 大小写都可保存 18 * 大小写都可保存
19 */ 19 */
20 private static final int CHILDREN_LENGTH = 26 * 2; 20 private static final int CHILDREN_LENGTH = 26 * 2;
  21 +
  22 + /**
  23 + * 存放的最大字符串长度
  24 + */
21 private static final int MAX_CHAR_LENGTH = 16; 25 private static final int MAX_CHAR_LENGTH = 16;
22 26
23 private static final char UPPERCASE_STAR = 'A'; 27 private static final char UPPERCASE_STAR = 'A';
@@ -209,7 +213,7 @@ public class TrieTree { @@ -209,7 +213,7 @@ public class TrieTree {
209 public boolean isEnd = false; 213 public boolean isEnd = false;
210 214
211 /** 215 /**
212 - * 如果支持查询,则不需要存储数据 216 + * 如果只是查询,则不需要存储数据
213 */ 217 */
214 public char data; 218 public char data;
215 219
@@ -46,6 +46,102 @@ public class TrieTreeTest { @@ -46,6 +46,102 @@ public class TrieTreeTest {
46 } 46 }
47 47
48 @Test 48 @Test
  49 + public void prefixSea() throws Exception {
  50 + TrieTree trieTree = new TrieTree();
  51 + trieTree.insert("java");
  52 + trieTree.insert("jsf");
  53 + trieTree.insert("jsp");
  54 + trieTree.insert("javascript");
  55 + trieTree.insert("php");
  56 +
  57 + String result ="";
  58 + List<String> ab = trieTree.prefixSearch("jav");
  59 + for (String s : ab) {
  60 + result += s+",";
  61 + System.out.println(s);
  62 + }
  63 +
  64 + Assert.assertTrue(result.equals("java,javascript,"));
  65 +
  66 + }
  67 + @Test
  68 + public void prefixSea2() throws Exception {
  69 + TrieTree trieTree = new TrieTree();
  70 + trieTree.insert("java");
  71 + trieTree.insert("jsf");
  72 + trieTree.insert("jsp");
  73 + trieTree.insert("javascript");
  74 + trieTree.insert("php");
  75 +
  76 + String result ="";
  77 + List<String> ab = trieTree.prefixSearch("j");
  78 + for (String s : ab) {
  79 + result += s+",";
  80 + System.out.println(s);
  81 + }
  82 +
  83 + Assert.assertTrue(result.equals("java,javascript,jsf,jsp,"));
  84 +
  85 + }
  86 + @Test
  87 + public void prefixSea3() throws Exception {
  88 + TrieTree trieTree = new TrieTree();
  89 + trieTree.insert("java");
  90 + trieTree.insert("jsf");
  91 + trieTree.insert("jsp");
  92 + trieTree.insert("javascript");
  93 + trieTree.insert("php");
  94 +
  95 + String result ="";
  96 + List<String> ab = trieTree.prefixSearch("js");
  97 + for (String s : ab) {
  98 + result += s+",";
  99 + System.out.println(s);
  100 + }
  101 +
  102 + Assert.assertTrue(result.equals("jsf,jsp,"));
  103 +
  104 + }
  105 + @Test
  106 + public void prefixSea4() throws Exception {
  107 + TrieTree trieTree = new TrieTree();
  108 + trieTree.insert("java");
  109 + trieTree.insert("jsf");
  110 + trieTree.insert("jsp");
  111 + trieTree.insert("javascript");
  112 + trieTree.insert("php");
  113 +
  114 + String result ="";
  115 + List<String> ab = trieTree.prefixSearch("jav");
  116 + for (String s : ab) {
  117 + result += s+",";
  118 + System.out.println(s);
  119 + }
  120 +
  121 + Assert.assertTrue(result.equals("java,javascript,"));
  122 +
  123 + }
  124 + @Test
  125 + public void prefixSea5() throws Exception {
  126 + TrieTree trieTree = new TrieTree();
  127 + trieTree.insert("java");
  128 + trieTree.insert("jsf");
  129 + trieTree.insert("jsp");
  130 + trieTree.insert("javascript");
  131 + trieTree.insert("php");
  132 +
  133 + String result ="";
  134 + List<String> ab = trieTree.prefixSearch("js");
  135 + for (String s : ab) {
  136 + result += s+",";
  137 + System.out.println(s);
  138 + }
  139 +
  140 + Assert.assertTrue(result.equals("jsf,jsp,"));
  141 +
  142 + }
  143 +
  144 + @Test
49 public void prefixSearch() throws Exception { 145 public void prefixSearch() throws Exception {
50 TrieTree trieTree = new TrieTree(); 146 TrieTree trieTree = new TrieTree();
51 trieTree.insert("abc"); 147 trieTree.insert("abc");
@@ -112,6 +208,19 @@ public class TrieTreeTest { @@ -112,6 +208,19 @@ public class TrieTreeTest {
112 } 208 }
113 Assert.assertTrue(result.equals("Cde,")); 209 Assert.assertTrue(result.equals("Cde,"));
114 } 210 }
  211 + @Test
  212 + public void prefixSearch44() throws Exception {
  213 + TrieTree trieTree = new TrieTree();
  214 + trieTree.insert("a");
  215 + trieTree.insert("b");
  216 + trieTree.insert("c");
  217 + trieTree.insert("d");
  218 + trieTree.insert("e");
  219 + trieTree.insert("f");
  220 + trieTree.insert("g");
  221 + trieTree.insert("h");
  222 +
  223 + }
115 224
116 @Test 225 @Test
117 public void prefixSearch5() throws Exception { 226 public void prefixSearch5() throws Exception {