xref: /aosp_15_r20/external/marisa-trie/bindings/ruby/sample.rb (revision ab8db090fce404b23716c4c9194221ee27efe31c)
1*ab8db090SAndroid Build Coastguard Workerrequire "marisa"
2*ab8db090SAndroid Build Coastguard Worker
3*ab8db090SAndroid Build Coastguard Workerkeyset = Marisa::Keyset.new
4*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("cake")
5*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("cookie")
6*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("ice")
7*ab8db090SAndroid Build Coastguard Workerkeyset.push_back("ice-cream")
8*ab8db090SAndroid Build Coastguard Worker
9*ab8db090SAndroid Build Coastguard Workertrie = Marisa::Trie.new
10*ab8db090SAndroid Build Coastguard Workertrie.build(keyset)
11*ab8db090SAndroid Build Coastguard Workerprint("no. keys: ", trie.num_keys(), "\n")
12*ab8db090SAndroid Build Coastguard Workerprint("no. tries: ", trie.num_tries(), "\n")
13*ab8db090SAndroid Build Coastguard Workerprint("no. nodes: ", trie.num_nodes(), "\n")
14*ab8db090SAndroid Build Coastguard Workerprint("size: ", trie.io_size(), "\n")
15*ab8db090SAndroid Build Coastguard Worker
16*ab8db090SAndroid Build Coastguard Workeragent = Marisa::Agent.new
17*ab8db090SAndroid Build Coastguard Worker
18*ab8db090SAndroid Build Coastguard Workeragent.set_query("cake")
19*ab8db090SAndroid Build Coastguard Workertrie.lookup(agent)
20*ab8db090SAndroid Build Coastguard Workerprint(agent.query_str(), ": ", agent.key_id(), "\n")
21*ab8db090SAndroid Build Coastguard Worker
22*ab8db090SAndroid Build Coastguard Workeragent.set_query("cookie")
23*ab8db090SAndroid Build Coastguard Workertrie.lookup(agent)
24*ab8db090SAndroid Build Coastguard Workerprint(agent.query_str(), ": ", agent.key_id(), "\n")
25*ab8db090SAndroid Build Coastguard Worker
26*ab8db090SAndroid Build Coastguard Workeragent.set_query("cockoo")
27*ab8db090SAndroid Build Coastguard Workerif not trie.lookup(agent)
28*ab8db090SAndroid Build Coastguard Worker  print(agent.query_str(), ": not found\n")
29*ab8db090SAndroid Build Coastguard Workerend
30*ab8db090SAndroid Build Coastguard Worker
31*ab8db090SAndroid Build Coastguard Workerprint("ice: ", trie.lookup("ice"), "\n")
32*ab8db090SAndroid Build Coastguard Workerprint("ice-cream: ", trie.lookup("ice-cream"), "\n")
33*ab8db090SAndroid Build Coastguard Workerif trie.lookup("ice-age") == Marisa::INVALID_KEY_ID
34*ab8db090SAndroid Build Coastguard Worker  print("ice-age: not found\n")
35*ab8db090SAndroid Build Coastguard Workerend
36*ab8db090SAndroid Build Coastguard Worker
37*ab8db090SAndroid Build Coastguard Workertrie.save("sample.dic")
38*ab8db090SAndroid Build Coastguard Workertrie.load("sample.dic")
39*ab8db090SAndroid Build Coastguard Worker
40*ab8db090SAndroid Build Coastguard Workeragent.set_query(0)
41*ab8db090SAndroid Build Coastguard Workertrie.reverse_lookup(agent)
42*ab8db090SAndroid Build Coastguard Workerprint(agent.query_id(), ": ", agent.key_str(), "\n")
43*ab8db090SAndroid Build Coastguard Worker
44*ab8db090SAndroid Build Coastguard Workeragent.set_query(1)
45*ab8db090SAndroid Build Coastguard Workertrie.reverse_lookup(agent)
46*ab8db090SAndroid Build Coastguard Workerprint(agent.query_id(), ": ", agent.key_str(), "\n")
47*ab8db090SAndroid Build Coastguard Worker
48*ab8db090SAndroid Build Coastguard Workerprint("2: ", trie.reverse_lookup(2), "\n")
49*ab8db090SAndroid Build Coastguard Workerprint("3: ", trie.reverse_lookup(3), "\n")
50*ab8db090SAndroid Build Coastguard Worker
51*ab8db090SAndroid Build Coastguard Workertrie.mmap("sample.dic")
52*ab8db090SAndroid Build Coastguard Worker
53*ab8db090SAndroid Build Coastguard Workeragent.set_query("ice-cream soda")
54*ab8db090SAndroid Build Coastguard Workerwhile trie.common_prefix_search(agent)
55*ab8db090SAndroid Build Coastguard Worker  print(agent.query_str(), ": ", agent.key_str(), " (", agent.key_id(), ")\n")
56*ab8db090SAndroid Build Coastguard Workerend
57*ab8db090SAndroid Build Coastguard Worker
58*ab8db090SAndroid Build Coastguard Workeragent.set_query("ic")
59*ab8db090SAndroid Build Coastguard Workerwhile trie.predictive_search(agent)
60*ab8db090SAndroid Build Coastguard Worker  print(agent.query_str(), ": ", agent.key_str(), " (", agent.key_id(), ")\n")
61*ab8db090SAndroid Build Coastguard Workerend
62