use of org.trie4j.Node in project trie4j by takawitter.
the class TailLOUDSTrieWithConcatTailArrayTest method test.
@Test
public void test() throws Exception {
String[] words = { "こんにちは", "さようなら", "おはよう", "おおきなかぶ", "おおやまざき" };
Trie lt = trieWithWords(words);
// Algorithms.dump(lt.getRoot(), new OutputStreamWriter(System.out));
for (String w : words) {
Assert.assertTrue(w, lt.contains(w));
}
Assert.assertFalse(lt.contains("おやすみなさい"));
StringBuilder b = new StringBuilder();
Node[] children = lt.getRoot().getChildren();
for (Node n : children) {
char[] letters = n.getLetters();
b.append(letters[0]);
}
Assert.assertEquals("おこさ", b.toString());
}
use of org.trie4j.Node in project trie4j by takawitter.
the class TailLOUDSTrieWithSuffixTrieTailArrayWikipediaMonitoredSBVTest method buildSecondTrie.
@Override
protected Trie buildSecondTrie(Trie first) {
bv.resetCounts();
TailLOUDSTrie t = new TailLOUDSTrie(first, new LOUDSBvTree(bv), new SuffixTrieTailArray(first.size()), new NodeListener() {
@Override
public void listen(Node node, int id) {
}
});
t.trimToSize();
return t;
}
use of org.trie4j.Node in project trie4j by takawitter.
the class MapTailPatriciaTrieWithConcatTailBuilderWikipediaTest method afterVerification.
@Override
protected void afterVerification(Trie trie) throws Exception {
final AtomicInteger nodes = new AtomicInteger();
final AtomicInteger leaves = new AtomicInteger();
Algorithms.traverseByDepth(trie.getRoot(), new NodeVisitor() {
@Override
public boolean visit(Node node, int nest) {
if (node.isTerminate())
leaves.incrementAndGet();
else
nodes.incrementAndGet();
return true;
}
});
System.out.println(String.format("%d nodes and %d leaves", nodes.intValue(), leaves.intValue()));
super.afterVerification(trie);
}
use of org.trie4j.Node in project trie4j by takawitter.
the class TailLOUDSPPTrieWithConcatTailArrayTest method test_save_load.
@Test
public void test_save_load() throws Exception {
String[] words = { "こんにちは", "さようなら", "おはよう", "おおきなかぶ", "おおやまざき" };
Trie trie = new PatriciaTrie(words);
TailLOUDSTrie lt = new TailLOUDSTrie(trie, new LOUDSPPBvTree(trie.nodeSize()));
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos)) {
lt.writeExternal(oos);
oos.flush();
lt = new TailLOUDSTrie(new PatriciaTrie(), new LOUDSPPBvTree());
lt.readExternal(new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())));
for (String w : words) {
Assert.assertTrue(lt.contains(w));
}
Assert.assertFalse(lt.contains("おやすみなさい"));
}
StringBuilder b = new StringBuilder();
Node[] children = lt.getRoot().getChildren();
for (Node n : children) {
char[] letters = n.getLetters();
b.append(letters[0]);
}
Assert.assertEquals("おこさ", b.toString());
}
use of org.trie4j.Node in project trie4j by takawitter.
the class TailLOUDSPPTrieWithSuffixTrieTailArrayTest method test_save_load.
@Test
public void test_save_load() throws Exception {
String[] words = { "こんにちは", "さようなら", "おはよう", "おおきなかぶ", "おおやまざき" };
TailLOUDSTrie lt = trieWithWords(words);
try (ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos)) {
oos.writeObject(lt);
oos.flush();
lt = (TailLOUDSTrie) new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray())).readObject();
for (String w : words) {
Assert.assertTrue(lt.contains(w));
}
Assert.assertFalse(lt.contains("おやすみなさい"));
}
StringBuilder b = new StringBuilder();
Node[] children = lt.getRoot().getChildren();
for (Node n : children) {
char[] letters = n.getLetters();
b.append(letters[0]);
}
Assert.assertEquals("おこさ", b.toString());
}
Aggregations