re2 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +12 -11
- data/ext/re2/re2.cc +343 -400
- data/test/re2_test.rb +68 -110
- metadata +4 -4
data/test/re2_test.rb
CHANGED
@@ -10,19 +10,15 @@ require "test/unit"
|
|
10
10
|
|
11
11
|
class RE2Test < Test::Unit::TestCase
|
12
12
|
def test_interface
|
13
|
-
assert_respond_to RE2, :FullMatch
|
14
|
-
assert_respond_to RE2, :FullMatchN
|
15
|
-
assert_respond_to RE2, :PartialMatch
|
16
|
-
assert_respond_to RE2, :PartialMatchN
|
17
13
|
assert_respond_to RE2, :Replace
|
18
14
|
assert_respond_to RE2, :GlobalReplace
|
19
15
|
assert_respond_to RE2, :QuoteMeta
|
20
|
-
assert_respond_to RE2, :escape
|
21
|
-
assert_respond_to RE2, :quote
|
22
|
-
assert_respond_to RE2, :new
|
23
|
-
assert_respond_to RE2, :compile
|
16
|
+
assert_respond_to RE2::Regexp, :escape
|
17
|
+
assert_respond_to RE2::Regexp, :quote
|
18
|
+
assert_respond_to RE2::Regexp, :new
|
19
|
+
assert_respond_to RE2::Regexp, :compile
|
24
20
|
|
25
|
-
r = RE2.new('woo')
|
21
|
+
r = RE2::Regexp.new('woo')
|
26
22
|
assert_respond_to r, :ok?
|
27
23
|
assert_respond_to r, :options
|
28
24
|
assert_respond_to r, :error
|
@@ -56,82 +52,16 @@ class RE2Test < Test::Unit::TestCase
|
|
56
52
|
|
57
53
|
def test_global_re2
|
58
54
|
r = RE2('w(o)(o)')
|
59
|
-
assert_kind_of RE2, r
|
55
|
+
assert_kind_of RE2::Regexp, r
|
60
56
|
assert_respond_to r, :ok?
|
61
57
|
end
|
62
58
|
|
63
59
|
def test_re2_compile
|
64
|
-
r = RE2.compile('w(o)(o)')
|
65
|
-
assert_kind_of RE2, r
|
60
|
+
r = RE2::Regexp.compile('w(o)(o)')
|
61
|
+
assert_kind_of RE2::Regexp, r
|
66
62
|
assert_respond_to r, :ok?
|
67
63
|
end
|
68
64
|
|
69
|
-
def test_full_match
|
70
|
-
assert RE2::FullMatch("woo", "woo")
|
71
|
-
assert RE2::FullMatch("woo", "wo+")
|
72
|
-
assert RE2::FullMatch("woo", "woo?")
|
73
|
-
assert RE2::FullMatch("woo", "wo{2}")
|
74
|
-
assert !RE2::FullMatch("woo", "wowzer")
|
75
|
-
end
|
76
|
-
|
77
|
-
def test_full_match_with_compiled_pattern
|
78
|
-
r = RE2.new("woo")
|
79
|
-
assert RE2::FullMatch("woo", r)
|
80
|
-
assert !RE2::FullMatch("wowzer", r)
|
81
|
-
|
82
|
-
assert RE2::FullMatch("woo", RE2("woo"))
|
83
|
-
assert RE2::FullMatch("woo", RE2("wo+"))
|
84
|
-
assert RE2::FullMatch("woo", RE2("woo?"))
|
85
|
-
assert RE2::FullMatch("woo", RE2("wo{2}"))
|
86
|
-
assert !RE2::FullMatch("woo", RE2("wowzer"))
|
87
|
-
end
|
88
|
-
|
89
|
-
def test_full_match_n
|
90
|
-
assert_equal ["oo"], RE2::FullMatchN("woo", "w(oo)")
|
91
|
-
assert_equal ["12"], RE2::FullMatchN("woo12w", 'woo(\d{2})w')
|
92
|
-
assert_equal [nil, "1", "234"], RE2::FullMatchN("w1234", 'w(a?)(\d)(\d+)')
|
93
|
-
assert_nil RE2::FullMatchN("bob", 'w(\d+)')
|
94
|
-
end
|
95
|
-
|
96
|
-
def test_full_match_n_with_compiled_pattern
|
97
|
-
assert_equal ["oo"], RE2::FullMatchN("woo", RE2.new("w(oo)"))
|
98
|
-
assert_equal ["12"], RE2::FullMatchN("woo12w", RE2.new('woo(\d{2})w'))
|
99
|
-
assert_equal [nil, "1", "234"], RE2::FullMatchN("w1234", RE2.new('w(a?)(\d)(\d+)'))
|
100
|
-
assert_nil RE2::FullMatchN("bob", RE2.new('w(\d+)'))
|
101
|
-
end
|
102
|
-
|
103
|
-
def test_partial_match
|
104
|
-
assert RE2::PartialMatch("woo", "oo")
|
105
|
-
assert RE2::PartialMatch("woo", "oo?")
|
106
|
-
assert RE2::PartialMatch("woo", "o{2}")
|
107
|
-
assert !RE2::PartialMatch("woo", "ha")
|
108
|
-
end
|
109
|
-
|
110
|
-
def test_partial_match_with_compiled_pattern
|
111
|
-
r = RE2.new("woo")
|
112
|
-
assert RE2::PartialMatch("woo", r)
|
113
|
-
assert !RE2::PartialMatch("wowzer", r)
|
114
|
-
|
115
|
-
assert RE2::PartialMatch("woo", RE2("oo"))
|
116
|
-
assert RE2::PartialMatch("woo", RE2("oo?"))
|
117
|
-
assert RE2::PartialMatch("woo", RE2("o{2}"))
|
118
|
-
assert !RE2::PartialMatch("woo", RE2("ha"))
|
119
|
-
end
|
120
|
-
|
121
|
-
def test_partial_match_n
|
122
|
-
assert_equal ["oo"], RE2::PartialMatchN("awooa", "w(oo)")
|
123
|
-
assert_equal ["12"], RE2::PartialMatchN("awoo12wa", 'woo(\d{2})w')
|
124
|
-
assert_equal [nil, "1", "234"], RE2::PartialMatchN("aw1234a", 'w(a?)(\d)(\d+)')
|
125
|
-
assert_nil RE2::PartialMatchN("bob", 'w(\d+)')
|
126
|
-
end
|
127
|
-
|
128
|
-
def test_partial_match_n_with_compiled_pattern
|
129
|
-
assert_equal ["oo"], RE2::PartialMatchN("awooa", RE2.new("w(oo)"))
|
130
|
-
assert_equal ["12"], RE2::PartialMatchN("awoo12wa", RE2.new('woo(\d{2})w'))
|
131
|
-
assert_equal [nil, "1", "234"], RE2::PartialMatchN("aw1234a", RE2.new('w(a?)(\d)(\d+)'))
|
132
|
-
assert_nil RE2::PartialMatchN("bob", RE2.new('w(\d+)'))
|
133
|
-
end
|
134
|
-
|
135
65
|
def test_replace
|
136
66
|
assert_equal "wao", RE2::Replace("woo", "o", "a")
|
137
67
|
assert_equal "hoo", RE2::Replace("woo", "w", "h")
|
@@ -159,50 +89,78 @@ class RE2Test < Test::Unit::TestCase
|
|
159
89
|
end
|
160
90
|
|
161
91
|
def test_compiling
|
162
|
-
r = RE2.new("woo")
|
92
|
+
r = RE2::Regexp.new("woo")
|
163
93
|
assert r.ok?
|
164
|
-
assert_equal "/woo
|
94
|
+
assert_equal "#<RE2::Regexp /woo/>", r.inspect
|
165
95
|
assert_equal "woo", r.to_s
|
166
96
|
end
|
167
97
|
|
168
98
|
def test_number_of_capturing_groups
|
169
|
-
assert_equal 3, RE2
|
170
|
-
assert_equal 0, RE2
|
171
|
-
assert_equal 2, RE2
|
99
|
+
assert_equal 3, RE2('(a)(b)(c)').number_of_capturing_groups
|
100
|
+
assert_equal 0, RE2('abc').number_of_capturing_groups
|
101
|
+
assert_equal 2, RE2('a((b)c)').number_of_capturing_groups
|
172
102
|
end
|
173
103
|
|
174
104
|
def test_matching_all_subpatterns
|
175
|
-
assert_equal ["woo", "o", "o"], RE2
|
176
|
-
assert_equal ["ab", nil, "a", "b"], RE2
|
105
|
+
assert_equal ["woo", "o", "o"], RE2('w(o)(o)').match('woo').to_a
|
106
|
+
assert_equal ["ab", nil, "a", "b"], RE2('(\d?)(a)(b)').match('ab').to_a
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_matchdata
|
110
|
+
r = RE2('(\d+)')
|
111
|
+
text = "bob 123"
|
112
|
+
m = r.match(text)
|
113
|
+
assert_kind_of RE2::MatchData, m
|
114
|
+
assert_respond_to m, :string
|
115
|
+
assert_respond_to m, :size
|
116
|
+
assert_respond_to m, :length
|
117
|
+
assert_respond_to m, :regexp
|
118
|
+
assert_respond_to m, :to_a
|
119
|
+
assert_respond_to m, :[]
|
120
|
+
assert_equal r, m.regexp
|
121
|
+
assert_equal text, m.string
|
122
|
+
assert m.string.frozen?
|
123
|
+
assert_not_equal m.string.object_id, text.object_id
|
124
|
+
assert_equal '#<RE2::MatchData "123" 1:"123">', m.inspect
|
125
|
+
assert_equal "123", m.to_s
|
126
|
+
assert_equal "123", m[0]
|
127
|
+
assert_equal "123", m[1]
|
128
|
+
assert_equal ["123"], m[0, 1]
|
129
|
+
assert_equal ["123", "123"], m[0, 2]
|
130
|
+
assert_equal ["123"], m[0...1]
|
131
|
+
assert_equal ["123", "123"], m[0..1]
|
132
|
+
m1, m2 = *r.match(text)
|
133
|
+
assert_equal "123", m1
|
134
|
+
assert_equal "123", m2
|
177
135
|
end
|
178
136
|
|
179
137
|
def test_matching_no_subpatterns
|
180
|
-
assert RE2
|
181
|
-
assert !RE2
|
182
|
-
assert RE2
|
183
|
-
assert !RE2
|
184
|
-
assert RE2
|
185
|
-
assert !(RE2
|
186
|
-
assert !(RE2
|
187
|
-
assert RE2
|
188
|
-
assert RE2
|
189
|
-
assert !(RE2
|
138
|
+
assert RE2('woo').match('woo', 0)
|
139
|
+
assert !RE2('bob').match('woo', 0)
|
140
|
+
assert RE2('woo').match?('woo')
|
141
|
+
assert !RE2('bob').match?('woo')
|
142
|
+
assert RE2('woo') =~ 'woo'
|
143
|
+
assert !(RE2('bob') =~ 'woo')
|
144
|
+
assert !(RE2('woo') !~ 'woo')
|
145
|
+
assert RE2('bob') !~ 'woo'
|
146
|
+
assert RE2('woo') === 'woo'
|
147
|
+
assert !(RE2('bob') === 'woo')
|
190
148
|
end
|
191
149
|
|
192
150
|
def test_matching_some_sub_patterns
|
193
|
-
assert_equal ["woo", "o"], RE2
|
194
|
-
assert_equal ["woo", "o", "o"], RE2
|
195
|
-
assert_equal ["woo", "o", "o", nil], RE2
|
196
|
-
assert_equal ["w", nil], RE2
|
197
|
-
assert_equal ["w", nil, nil], RE2
|
198
|
-
assert_equal ["w", nil, nil, nil], RE2
|
151
|
+
assert_equal ["woo", "o"], RE2('w(o)(o)').match('woo', 1).to_a
|
152
|
+
assert_equal ["woo", "o", "o"], RE2('w(o)(o)').match('woo', 2).to_a
|
153
|
+
assert_equal ["woo", "o", "o", nil], RE2('w(o)(o)').match('woo', 3).to_a
|
154
|
+
assert_equal ["w", nil], RE2('w(o)?(o)?').match('w', 1).to_a
|
155
|
+
assert_equal ["w", nil, nil], RE2('w(o)?(o)?').match('w', 2).to_a
|
156
|
+
assert_equal ["w", nil, nil, nil], RE2('w(o)?(o)?').match('w', 3).to_a
|
199
157
|
end
|
200
158
|
|
201
159
|
def test_compiling_with_options
|
202
|
-
r = RE2
|
160
|
+
r = RE2("woo", :case_sensitive => false)
|
203
161
|
assert r.ok?
|
204
|
-
assert
|
205
|
-
assert
|
162
|
+
assert r =~ "woo"
|
163
|
+
assert r =~ "WOO"
|
206
164
|
assert !r.options[:case_sensitive]
|
207
165
|
assert r.case_insensitive?
|
208
166
|
assert r.casefold?
|
@@ -212,7 +170,7 @@ class RE2Test < Test::Unit::TestCase
|
|
212
170
|
end
|
213
171
|
|
214
172
|
def test_replace_with_re2
|
215
|
-
r = RE2
|
173
|
+
r = RE2("wo{2}")
|
216
174
|
assert_equal "miaow", RE2::Replace("woo", r, "miaow")
|
217
175
|
|
218
176
|
assert_equal "wao", RE2::Replace("woo", RE2("o"), "a")
|
@@ -223,7 +181,7 @@ class RE2Test < Test::Unit::TestCase
|
|
223
181
|
end
|
224
182
|
|
225
183
|
def test_global_replace_with_re2
|
226
|
-
r = RE2
|
184
|
+
r = RE2("o")
|
227
185
|
assert_equal "wii", RE2::GlobalReplace("woo", r, "i")
|
228
186
|
|
229
187
|
assert_equal "waa", RE2::GlobalReplace("woo", RE2("o"), "a")
|
@@ -233,18 +191,18 @@ class RE2Test < Test::Unit::TestCase
|
|
233
191
|
|
234
192
|
def test_quote_meta
|
235
193
|
assert_equal "1\\.5\\-2\\.0\\?", RE2::QuoteMeta("1.5-2.0?")
|
236
|
-
assert_equal "1\\.5\\-2\\.0\\?", RE2.escape("1.5-2.0?")
|
237
|
-
assert_equal "1\\.5\\-2\\.0\\?", RE2.quote("1.5-2.0?")
|
194
|
+
assert_equal "1\\.5\\-2\\.0\\?", RE2::Regexp.escape("1.5-2.0?")
|
195
|
+
assert_equal "1\\.5\\-2\\.0\\?", RE2::Regexp.quote("1.5-2.0?")
|
238
196
|
end
|
239
197
|
|
240
198
|
def test_re2_error
|
241
|
-
r = RE2
|
199
|
+
r = RE2("woo")
|
242
200
|
assert_equal "", r.error
|
243
201
|
assert_equal "", r.error_arg
|
244
202
|
end
|
245
203
|
|
246
204
|
def test_re2_error_with_error
|
247
|
-
r = RE2
|
205
|
+
r = RE2("wo(o", :log_errors => false)
|
248
206
|
assert !r.ok?
|
249
207
|
assert_equal "missing ): wo(o", r.error
|
250
208
|
assert_equal "wo(o", r.error_arg
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: re2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 4
|
10
|
+
version: 0.0.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Paul Mucur
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
18
|
+
date: 2010-08-02 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|