Search in sources :

Example 26 with Node

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());
}
Also used : Node(org.trie4j.Node) Trie(org.trie4j.Trie) AbstractTermIdTrieTest(org.trie4j.AbstractTermIdTrieTest) Test(org.junit.Test)

Example 27 with Node

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;
}
Also used : LOUDSBvTree(org.trie4j.louds.bvtree.LOUDSBvTree) NodeListener(org.trie4j.louds.TailLOUDSTrie.NodeListener) Node(org.trie4j.Node) SuffixTrieTailArray(org.trie4j.tail.SuffixTrieTailArray)

Example 28 with Node

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);
}
Also used : AtomicInteger(java.util.concurrent.atomic.AtomicInteger) Node(org.trie4j.Node) NodeVisitor(org.trie4j.NodeVisitor)

Example 29 with Node

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());
}
Also used : LOUDSPPBvTree(org.trie4j.louds.bvtree.LOUDSPPBvTree) PatriciaTrie(org.trie4j.patricia.PatriciaTrie) Node(org.trie4j.Node) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectOutputStream(java.io.ObjectOutputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) Trie(org.trie4j.Trie) PatriciaTrie(org.trie4j.patricia.PatriciaTrie) ObjectInputStream(java.io.ObjectInputStream) AbstractTermIdTrieTest(org.trie4j.AbstractTermIdTrieTest) Test(org.junit.Test)

Example 30 with Node

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());
}
Also used : ByteArrayInputStream(java.io.ByteArrayInputStream) Node(org.trie4j.Node) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectOutputStream(java.io.ObjectOutputStream) ObjectInputStream(java.io.ObjectInputStream) AbstractTermIdTrieTest(org.trie4j.AbstractTermIdTrieTest) Test(org.junit.Test)

Aggregations

Node (org.trie4j.Node)31 Test (org.junit.Test)15 AbstractTermIdTrieTest (org.trie4j.AbstractTermIdTrieTest)13 Trie (org.trie4j.Trie)10 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)9 ByteArrayInputStream (java.io.ByteArrayInputStream)8 ByteArrayOutputStream (java.io.ByteArrayOutputStream)8 ObjectInputStream (java.io.ObjectInputStream)8 ObjectOutputStream (java.io.ObjectOutputStream)8 NodeVisitor (org.trie4j.NodeVisitor)8 PatriciaTrie (org.trie4j.patricia.PatriciaTrie)6 LinkedList (java.util.LinkedList)3 PrintWriter (java.io.PrintWriter)2 ArrayList (java.util.ArrayList)2 AbstractImmutableTrieTest (org.trie4j.AbstractImmutableTrieTest)2 LapTimer (org.trie4j.test.LapTimer)2 WikipediaTitles (org.trie4j.test.WikipediaTitles)2 Pair (org.trie4j.util.Pair)2 OutputStreamWriter (java.io.OutputStreamWriter)1 HashMap (java.util.HashMap)1