amatch 0.1.3

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/test.rb ADDED
@@ -0,0 +1,94 @@
1
+ require 'test/unit'
2
+ require 'amatch'
3
+
4
+ class TC_AmatchTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @matcher = Amatch.new('test')
8
+ end
9
+
10
+ def test_match
11
+ assert(@matcher.match('') == 4)
12
+ assert(@matcher.match('test') == 0)
13
+ assert(@matcher.match('test') == 0)
14
+ assert(@matcher.match('testa') == 1)
15
+ assert(@matcher.match('atest') == 1)
16
+ assert(@matcher.match('teast') == 1)
17
+ assert(@matcher.match('est') == 1)
18
+ assert(@matcher.match('tes') == 1)
19
+ assert(@matcher.match('tst') == 1)
20
+ assert(@matcher.match('best') == 1)
21
+ assert(@matcher.match('tost') == 1)
22
+ assert(@matcher.match('tesa') == 1)
23
+ assert(@matcher.match('taex') == 3)
24
+ assert(@matcher.matchr('') == 1.0)
25
+ assert(@matcher.matchr('tesa') == 0.25)
26
+ assert(@matcher.match('aaatestbbb') == 6)
27
+ end
28
+
29
+ def test_search
30
+ assert(@matcher.search('') == 4)
31
+ assert(@matcher.searchr('') == 1.0)
32
+ assert(@matcher.search('aaatestbbb') == 0)
33
+ assert(@matcher.search('aaataexbbb') == 3)
34
+ assert(@matcher.searchr('aaataexbbb') == 0.75)
35
+ assert(@matcher.search('aaaaaaaaa') == 4)
36
+ assert(@matcher.searchr('aaaaaaaaa') == 1.0)
37
+ end
38
+
39
+ def test_compare
40
+ assert(@matcher.compare('') == -4)
41
+ assert(@matcher.comparer('') == -1.0)
42
+ assert(@matcher.compare('taex') == 3)
43
+ assert(@matcher.comparer('tesa') == 0.25)
44
+ assert(@matcher.compare('aaatestbbb') == 6)
45
+ assert(@matcher.compare('test') == 0)
46
+ assert(@matcher.compare('tex') == -2)
47
+ assert(@matcher.comparer('tsa') == -0.5)
48
+ assert(@matcher.compare('wxyz') == 4)
49
+ assert(@matcher.comparer('wxyz') == 1.0)
50
+ assert_raises(TypeError) { @matcher.match(:foo) }
51
+ end
52
+
53
+ def test_array_result
54
+ assert(@matcher.match([]) == []);
55
+ assert(@matcher.match(["tets", "test"]) == [2, 0]);
56
+ assert(@matcher.matchr(["tets", "test"]) == [0.5, 0]);
57
+ assert(@matcher.compare(["tets", "test"]) == [2, 0]);
58
+ assert(@matcher.comparer(["tets", "test"]) == [0.5, 0]);
59
+ assert(@matcher.search(["tetsaaa", "testaaa"]) == [1, 0]);
60
+ assert(@matcher.searchr(["tetsaaa", "testaaa"]) == [0.25, 0]);
61
+ assert_raises(TypeError) { @matcher.match([:foo, "bar"]) }
62
+ end
63
+
64
+ def test_weights
65
+ assert(@matcher.subw == 1)
66
+ assert(@matcher.insw == 1)
67
+ assert(@matcher.delw == 1)
68
+ @matcher.subw = 2
69
+ assert(@matcher.subw == 2)
70
+ assert(@matcher.match('tast') == 2)
71
+ @matcher.subw = 1
72
+ assert(@matcher.match('tast') == 1)
73
+ @matcher.insw = 2
74
+ assert(@matcher.insw == 2)
75
+ assert(@matcher.match('teist') == 2)
76
+ @matcher.delw = 2
77
+ assert(@matcher.delw == 2)
78
+ assert(@matcher.match('tst') == 2)
79
+ @matcher.resetw
80
+ assert(@matcher.subw == 1)
81
+ assert(@matcher.insw == 1)
82
+ assert(@matcher.delw == 1)
83
+ @matcher.subw = :something
84
+ assert_raises(TypeError) { @matcher.match('anything') }
85
+ @matcher.subw = 1
86
+ @matcher.insw = :something
87
+ assert_raises(TypeError) { @matcher.match('anything') }
88
+ @matcher.insw = 1
89
+ @matcher.delw = :something
90
+ assert_raises(TypeError) { @matcher.match('anything') }
91
+ end
92
+
93
+ end
94
+ # vim: set noet sw=4 ts=4:
metadata ADDED
@@ -0,0 +1,57 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.1
3
+ specification_version: 1
4
+ name: amatch
5
+ version: !ruby/object:Gem::Version
6
+ version: 0.1.3
7
+ date: 2004-09-27
8
+ summary: Approximate String Matching library
9
+ require_paths:
10
+ - lib
11
+ author: Florian Frank
12
+ email: flori@ping.de
13
+ homepage: http://XXX
14
+ rubyforge_project: amatch
15
+ description: Amatch is a library for approximate string matching and searching using a dynamic programming algorithm to compute the Levenstein distance between strings.
16
+ autorequire: amatch
17
+ default_executable: agrep.rb
18
+ bindir: bin
19
+ has_rdoc: true
20
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
21
+ requirements:
22
+ -
23
+ - ">"
24
+ - !ruby/object:Gem::Version
25
+ version: 0.0.0
26
+ version:
27
+ platform: ruby
28
+ files:
29
+ - README.en
30
+ - CHANGES
31
+ - GPL
32
+ - bin
33
+ - bin/agrep.rb
34
+ - ext
35
+ - ext/MANIFEST
36
+ - ext/amatch.c
37
+ - ext/extconf.rb
38
+ - Rakefile
39
+ - VERSION
40
+ - amatch.txt.en
41
+ - install.rb
42
+ - test.rb
43
+ - index.html
44
+ test_files: []
45
+ rdoc_options:
46
+ - "--title"
47
+ - "Rake -- Ruby Make"
48
+ - "--main"
49
+ - README
50
+ - "--line-numbers"
51
+ extra_rdoc_files: []
52
+ executables:
53
+ - agrep.rb
54
+ extensions:
55
+ - ext/extconf.rb
56
+ requirements: []
57
+ dependencies: []