/** Test of add method, of class TernarySearchTree. */
 @Test
 public void testAddAndContains() {
   System.out.println("add");
   TernarySearchTree instance = new TernarySearchTree();
   ArrayList<String> strings = randomStrings();
   for (String s : strings) {
     instance.add(s);
   }
   for (String s : strings) {
     assertTrue(instance.contains(s));
   }
 }
 /** Test of search method, of class TernarySearchTree. */
 @Test
 public void testSearch() {
   System.out.println("search");
   Random gen = new Random();
   TernarySearchTree instance = new TernarySearchTree();
   ArrayList<String> strings = randomStrings();
   for (String s : strings) {
     instance.add(s);
   }
   for (String s : strings) {
     int length = s.length();
     if (length == 4) {
       continue;
     }
     int substringTo = gen.nextInt(length - 1);
     if (substringTo == 0) {
       continue;
     }
     String searchFor = s.substring(0, substringTo);
     String suffix = instance.search(searchFor);
     assertTrue(strings.contains(searchFor + suffix));
   }
 }
  @Override
  public void run() {
    try {
      Document document = textPane.getDocument();
      String content = document.getText(0, document.getLength());
      Scanner scanner = new Scanner(content);
      scanner.useDelimiter(Pattern.compile("[\\s\\W]"));

      while (scanner.hasNext()) {
        String key = scanner.next();
        String key2 = key.toLowerCase();
        if (key2.length() < 3) {
          continue;
        }
        tree.add(key2);
      }

    } catch (BadLocationException ex) {
      Logger.getLogger(WordCountCache.class.getName()).log(Level.SEVERE, null, ex);
    }
  }
 @Override
 public void reset() {
   tree.reset();
 }