natto 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +13 -2
- data/README.md +47 -22
- data/lib/natto.rb +242 -140
- data/lib/natto/binding.rb +40 -29
- data/lib/natto/utils.rb +16 -0
- data/lib/natto/version.rb +3 -3
- metadata +39 -60
- data/test/natto/tc_binding.rb +0 -41
- data/test/natto/tc_dictionaryinfo.rb +0 -65
- data/test/natto/tc_mecab.rb +0 -295
- data/test/natto/tc_mecabnode.rb +0 -101
- data/test/test_natto.rb +0 -12
data/test/natto/tc_mecabnode.rb
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
require 'rbconfig'
|
3
|
-
require 'nkf'
|
4
|
-
|
5
|
-
# TestMeCabNode encapsulates tests for the basic
|
6
|
-
# behavior of Natto::MeCabNode
|
7
|
-
class TestMeCabNode < Test::Unit::TestCase
|
8
|
-
|
9
|
-
host_os = RbConfig::CONFIG['host_os']
|
10
|
-
# we need to transfrom from UTF-8 ot SJIS if we are on Windows!
|
11
|
-
if host_os =~ /mswin|mingw/i
|
12
|
-
TEST_STR = NKF.nkf("-Ws", '試験ですよ、これが。')
|
13
|
-
else
|
14
|
-
TEST_STR = '試験ですよ、これが。'
|
15
|
-
end
|
16
|
-
|
17
|
-
def setup
|
18
|
-
nm = Natto::MeCab.new
|
19
|
-
@nodes = []
|
20
|
-
nm.parse(TEST_STR) { |n| @nodes << n }
|
21
|
-
end
|
22
|
-
|
23
|
-
def teardown
|
24
|
-
@nodes = nil
|
25
|
-
end
|
26
|
-
|
27
|
-
# Tests the surface and feature accessors methods.
|
28
|
-
def test_surface_and_feature_accessors
|
29
|
-
raw = `echo #{TEST_STR} | mecab`.lines.to_a
|
30
|
-
raw.delete_if {|e| e =~ /^(EOS|BOS|\t)/ }
|
31
|
-
expected = {}
|
32
|
-
raw.each do |l|
|
33
|
-
tokens = l.split("\t")
|
34
|
-
expected[tokens[0]]=tokens[1].strip
|
35
|
-
end
|
36
|
-
|
37
|
-
actual = {}
|
38
|
-
@nodes.each do |n|
|
39
|
-
actual[n.surface]=n.feature if (n.stat==Natto::MeCabNode::NOR_NODE ||
|
40
|
-
n.stat==Natto::MeCabNode::UNK_NODE)
|
41
|
-
end
|
42
|
-
|
43
|
-
assert_equal(expected, actual)
|
44
|
-
end
|
45
|
-
|
46
|
-
# Tests MeCabNode#surface to show that it is consistent
|
47
|
-
# no matter how many times it is invoked.
|
48
|
-
def test_manysurfaces
|
49
|
-
@nodes.each do |n|
|
50
|
-
expected = n.surface
|
51
|
-
5.times { assert_equal(expected, n.surface) }
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
# Tests MeCabNode#feature to show that it is consistent
|
56
|
-
# no matter how many times it is invoked.
|
57
|
-
def test_manyfeature
|
58
|
-
@nodes.each do |n|
|
59
|
-
expected = n.feature
|
60
|
-
5.times { assert_equal(expected, n.feature) }
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# Tests that the accessors of Natto::MeCabNode exist.
|
65
|
-
# Note: Object#id is deprecated in 1.9.n, but comes with a warning
|
66
|
-
# in 1.8.n
|
67
|
-
def test_mecabnode_accessors
|
68
|
-
node = @nodes[0]
|
69
|
-
[ :prev,
|
70
|
-
:next,
|
71
|
-
:enext,
|
72
|
-
:bnext,
|
73
|
-
:rpath,
|
74
|
-
:lpath,
|
75
|
-
:surface,
|
76
|
-
:feature,
|
77
|
-
:id,
|
78
|
-
:length,
|
79
|
-
:rlength,
|
80
|
-
:rcAttr,
|
81
|
-
:lcAttr,
|
82
|
-
:posid,
|
83
|
-
:char_type,
|
84
|
-
:stat,
|
85
|
-
:isbest,
|
86
|
-
:alpha,
|
87
|
-
:beta,
|
88
|
-
:prob,
|
89
|
-
:wcost,
|
90
|
-
:cost ].each do |nomme|
|
91
|
-
assert_nothing_raised do
|
92
|
-
node.send nomme
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
# NoMethodError will be raised for anything else!
|
97
|
-
assert_raise NoMethodError do
|
98
|
-
node.send :unknown_attr
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
data/test/test_natto.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
$: << 'lib'
|
3
|
-
require 'rubygems' if RUBY_VERSION.to_f < 1.9
|
4
|
-
require 'test/unit'
|
5
|
-
require 'natto'
|
6
|
-
|
7
|
-
[ '/test/natto/tc_mecab.rb',
|
8
|
-
'/test/natto/tc_mecabnode.rb',
|
9
|
-
'/test/natto/tc_dictionaryinfo.rb',
|
10
|
-
'/test/natto/tc_binding.rb' ].each do |tc|
|
11
|
-
require File.join(File.expand_path('.'), tc)
|
12
|
-
end
|