cql 0.2.1 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,288 +1,161 @@
1
- require 'rspec'
2
- require File.dirname(__FILE__) + "/../lib/cql"
3
-
4
- describe "cql" do
5
- describe 'tag count' do
6
- {
7
- 0=>[],
8
- 1=>[],
9
- 2=>{"name"=> "1 tag"},
10
- 3=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}],
11
- 4=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}],
12
- 5=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}]
13
- }.each do |number, expected|
14
- it "should filter scenarios by the number of tags with the 'tc lt' operator for count of #{number}" do
15
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/tag_count"
16
-
17
- result = gs.query do
18
- select name
19
- from scenarios
20
- with tc lt number
21
- end
22
-
23
- result.should == expected
24
- end
25
- end
26
-
27
- {
28
- 0=>[],
29
- 1=>{"name"=> "1 tag"},
30
- 2=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}],
31
- 3=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}],
32
- 4=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}],
33
- 5=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}]
34
-
35
- }.each do |number, expected|
36
- it "should filter scenarios by the number of tags with the 'tc_lte' operator for count of #{number}" do
37
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/tag_count"
38
-
39
- result = gs.query do
40
- select name
41
- from scenarios
42
- with tc lte number
43
- end
44
-
45
- result.should == expected
46
- end
47
- end
48
-
49
- {
50
- 0=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}],
51
- 1=>[{"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}],
52
- 2=>[{"name"=> "3 tags"}, {"name"=> "4 tags"}],
53
- 3=>{"name"=> "4 tags"},
54
- 4=>[]
55
- }.each do |number, expected|
56
- it "should filter scenarios by the number of tags with the 'tc_gt' operator for count of #{number}" do
57
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/tag_count"
58
-
59
- result = gs.query do
60
- select name
61
- from scenarios
62
- with tc gt number
63
- end
64
-
65
- result.should == expected
66
- end
67
- end
68
-
69
- {
70
- 0=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}],
71
- 1=>[{"name"=> "1 tag"}, {"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}],
72
- 2=>[{"name"=> "2 tags"}, {"name"=> "3 tags"}, {"name"=> "4 tags"}],
73
- 3=>[{"name"=> "3 tags"}, {"name"=> "4 tags"}],
74
- 4=>{"name"=> "4 tags"},
75
- 5 =>[]
76
- }.each do |number, expected|
77
- it "should filter scenarios by the number of tags with the 'tc_gte' operator for count of #{number}" do
78
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/tag_count"
79
-
80
- result = gs.query do
81
- select name
82
- from scenarios
83
- with tc gte number
84
- end
85
-
86
- result.should == expected
87
- end
88
- end
89
-
90
-
91
- end
92
-
93
- describe 'line count' do
94
- {
95
- 0=>[],
96
- 1=>[],
97
- 2=>{"name"=> "1 line"},
98
- 3=>[{"name"=> "1 line"}, {"name"=> "2 lines"}],
99
- 4=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}],
100
- 5=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}]
101
-
102
- }.each do |number, expected|
103
- it "should filter scenarios by the number of lines with the 'lc_lt' operator for count of #{number}" do
104
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_count"
105
-
106
- result = gs.query do
107
- select name
108
- from scenarios
109
- with lc lt number
110
- end
111
-
112
- result.should == expected
113
- end
114
- end
115
-
116
- {
117
- 0=>[],
118
- 1=>{"name"=> "1 line"},
119
- 2=>[{"name"=> "1 line"}, {"name"=> "2 lines"}],
120
- 3=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}],
121
- 4=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}],
122
- 5=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}]
123
-
124
- }.each do |number, expected|
125
- it "should filter scenarios by the number of lines with the 'lc_lte' operator for count of #{number}" do
126
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_count"
127
-
128
- result = gs.query do
129
- select name
130
- from scenarios
131
- with lc lte number
132
- end
133
-
134
- result.should == expected
135
- end
136
- end
137
-
138
- {
139
- 0=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}],
140
- 1=>[{"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}],
141
- 2=>[{"name"=> "3 lines"}, {"name"=> "4 lines"}],
142
- 3=>{"name"=> "4 lines"},
143
- 4=>[]
144
-
145
-
146
- }.each do |number, expected|
147
- it "should filter scenarios by the number of lines with the 'lc_gt' operator for count of #{number}" do
148
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_count"
149
-
150
- result = gs.query do
151
- select name
152
- from scenarios
153
- with lc gt number
154
- end
155
-
156
- result.should == expected
157
- end
158
- end
159
-
160
- {
161
- 0=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}],
162
- 1=>[{"name"=> "1 line"}, {"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}],
163
- 2=>[{"name"=> "2 lines"}, {"name"=> "3 lines"}, {"name"=> "4 lines"}],
164
- 3=>[{"name"=> "3 lines"}, {"name"=> "4 lines"}],
165
- 4=>{"name"=> "4 lines"},
166
- 5 =>[]
167
-
168
-
169
- }.each do |number, expected|
170
- it "should filter scenarios by the number of lines with the 'lc_gte' operator for count of #{number}" do
171
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_count"
172
-
173
- result = gs.query do
174
- select name
175
- from scenarios
176
- with lc gte number
177
- end
178
-
179
- result.should == expected
180
- end
181
- end
182
-
183
-
184
- end
185
-
186
- describe 'exact line match' do
187
- it 'should filter based on an exact line' do
188
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_filter"
189
-
190
- result = gs.query do
191
- select name
192
- from scenarios
193
- with line 'green eggs and ham'
194
- end
195
-
196
- result.size.should == 1
197
-
198
- end
199
-
200
- it 'should filter all results when the exact line given does not match' do
201
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_filter"
202
-
203
- result = gs.query do
204
- select name
205
- from scenarios
206
- with line 'no match'
207
- end
208
-
209
- result.size.should == 0
210
-
211
- end
212
-
213
- it 'should filter no results when the exact line given is present in all scenarios' do
214
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_filter"
215
-
216
- result = gs.query do
217
- select name
218
- from scenarios
219
- with line 'a cat in a hat'
220
- end
221
-
222
- result.size.should == 2
223
-
224
- end
225
- end
226
-
227
- describe 'exact line match' do
228
- it 'should filter based on a regexp match' do
229
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_filter"
230
-
231
- result = gs.query do
232
- select name
233
- from scenarios
234
- with line /green/
235
- end
236
-
237
- result.size.should == 1
238
-
239
- end
240
-
241
- it 'should filter all if no regexp match' do
242
- gs = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_filter"
243
-
244
- result = gs.query do
245
- select name
246
- from scenarios
247
- with line /will not be found/
248
- end
249
-
250
- result.size.should == 0
251
-
252
- end
253
-
254
- it 'should filter none if all match regexp' do
255
- repo = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/line_filter"
256
-
257
- result = repo.query do
258
- select name
259
- from scenarios
260
- with line /cat/
261
- end
262
-
263
- result.size.should == 2
264
-
265
- end
266
-
267
- end
268
-
269
- describe 'tag search' do
270
- it 'should return scenarios with matching tags' do
271
- repo = CQL::Repository.new File.dirname(__FILE__) + "/../fixtures/features/scenario/tags"
272
-
273
- result = repo.query do
274
- select name
275
- from scenarios
276
- with tags '@one'
277
- end
278
-
279
- result.should == [{'name'=>'Next'},{'name'=>'Another'}]
280
- end
281
- end
282
-
283
- # Has tag
284
- # Name
285
- # Name match
286
-
287
- # Example count
288
- end
1
+ require 'spec_helper'
2
+
3
+ describe "scenario and outline filters (with)" do
4
+
5
+
6
+ # todo - seems like this kind of filtering should be available at the scenario level as well as the feature level
7
+ #it_behaves_like 'a name filterable target set', 'scenarios', {:exact_name => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/name_filter",
8
+ # :expected_results => {'name1' => [{"name" => "name1"}]}},
9
+ # :regexp => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/name_filter",
10
+ # :expected_results => {/name/ => [{"name" => "name1"},{"name" => "name2"},{"name" => "name3"}],
11
+ # /name1/ => [{"name" => "name1"}]}}
12
+ #}
13
+
14
+ it_behaves_like 'a tag filterable target set', 'scenarios', {:single_tag => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tags",
15
+ :expected_results => {'@one' => [{'name' => 'Next'}, {'name' => 'Another'}]}},
16
+
17
+ :multiple_tags => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tags2",
18
+ :expected_results => {['@one', '@five'] => [{'name' => 'Next'}]}},
19
+
20
+ :tc_lt => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tag_count",
21
+ :expected_results => {0 => [],
22
+ 1 => [],
23
+ 2 => [{"name" => "1 tag"}],
24
+ 3 => [{"name" => "1 tag"}, {"name" => "2 tags"}],
25
+ 4 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}],
26
+ 5 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}]}},
27
+
28
+ :tc_lte => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tag_count",
29
+ :expected_results => {0 => [],
30
+ 1 => [{"name" => "1 tag"}],
31
+ 2 => [{"name" => "1 tag"}, {"name" => "2 tags"}],
32
+ 3 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}],
33
+ 4 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
34
+ 5 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}]}},
35
+
36
+ :tc_gt => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tag_count",
37
+ :expected_results => {0 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
38
+ 1 => [{"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
39
+ 2 => [{"name" => "3 tags"}, {"name" => "4 tags"}],
40
+ 3 => [{"name" => "4 tags"}],
41
+ 4 => []}},
42
+
43
+ :tc_gte => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/tag_count",
44
+ :expected_results => {0 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
45
+ 1 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
46
+ 2 => [{"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
47
+ 3 => [{"name" => "3 tags"}, {"name" => "4 tags"}],
48
+ 4 => [{"name" => "4 tags"}],
49
+ 5 => []}}
50
+ }
51
+
52
+ it_behaves_like 'a tag filterable target set', 'scenario_outlines', {:single_tag => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tags",
53
+ :expected_results => {'@one' => [{'name' => 'Next'}, {'name' => 'Another'}]}},
54
+
55
+ :multiple_tags => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tags2",
56
+ :expected_results => {['@one', '@five'] => [{'name' => 'Next'}]}},
57
+
58
+ :tc_lt => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tag_count",
59
+ :expected_results => {0 => [],
60
+ 1 => [],
61
+ 2 => [{"name" => "1 tag"}],
62
+ 3 => [{"name" => "1 tag"}, {"name" => "2 tags"}],
63
+ 4 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}],
64
+ 5 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}]}},
65
+
66
+ :tc_lte => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tag_count",
67
+ :expected_results => {0 => [],
68
+ 1 => [{"name" => "1 tag"}],
69
+ 2 => [{"name" => "1 tag"}, {"name" => "2 tags"}],
70
+ 3 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}],
71
+ 4 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
72
+ 5 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}]}},
73
+
74
+ :tc_gt => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tag_count",
75
+ :expected_results => {0 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
76
+ 1 => [{"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
77
+ 2 => [{"name" => "3 tags"}, {"name" => "4 tags"}],
78
+ 3 => [{"name" => "4 tags"}],
79
+ 4 => []}},
80
+
81
+ :tc_gte => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scen_outlines/filters/tag_count",
82
+ :expected_results => {0 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
83
+ 1 => [{"name" => "1 tag"}, {"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
84
+ 2 => [{"name" => "2 tags"}, {"name" => "3 tags"}, {"name" => "4 tags"}],
85
+ 3 => [{"name" => "3 tags"}, {"name" => "4 tags"}],
86
+ 4 => [{"name" => "4 tags"}],
87
+ 5 => []}}
88
+ }
89
+
90
+ it_behaves_like 'a line count filterable target set', 'scenarios', {:lc_lt => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/line_count",
91
+ :expected_results => {0 => [],
92
+ 1 => [],
93
+ 2 => [{"name" => "1 line"}],
94
+ 3 => [{"name" => "1 line"}, {"name" => "2 lines"}],
95
+ 4 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}],
96
+ 5 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}]}},
97
+ :lc_lte => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/line_count",
98
+ :expected_results => {0 => [],
99
+ 1 => [{"name" => "1 line"}],
100
+ 2 => [{"name" => "1 line"}, {"name" => "2 lines"}],
101
+ 3 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}],
102
+ 4 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}],
103
+ 5 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}]}},
104
+ :lc_gt => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/line_count",
105
+ :expected_results => {0 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}],
106
+ 1 => [{"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}],
107
+ 2 => [{"name" => "3 lines"}, {"name" => "4 lines"}],
108
+ 3 => [{"name" => "4 lines"}],
109
+ 4 => []}},
110
+ :lc_gte => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/line_count",
111
+ :expected_results => {0 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}],
112
+ 1 => [{"name" => "1 line"}, {"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}],
113
+ 2 => [{"name" => "2 lines"}, {"name" => "3 lines"}, {"name" => "4 lines"}],
114
+ 3 => [{"name" => "3 lines"}, {"name" => "4 lines"}],
115
+ 4 => [{"name" => "4 lines"}],
116
+ 5 => []}}}
117
+
118
+
119
+ it_behaves_like 'a line filterable target set', 'scenarios', {:exact_line => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/line_filter",
120
+ :expected_results => {'all match' => [{"name" => "sc1"}, {"name" => "sc2"}],
121
+ 'green eggs and ham' => [{"name" => "sc1"}],
122
+ 'no match' => []}},
123
+ :regexp => {:fixture_location => "#{CQL_FEATURE_FIXTURES_DIRECTORY}/scenario/line_filter",
124
+ :expected_results => {/all/ => [{"name" => "sc1"}, {"name" => "sc2"}],
125
+ /green/ => [{"name" => "sc1"}],
126
+ /will not be found/ => []}}}
127
+
128
+ it 'should filter by multiple filters' do
129
+ gs = CQL::Repository.new("#{@feature_fixtures_directory}/scenario/tag_count")
130
+
131
+ result = gs.query do
132
+ select name
133
+ from scenarios
134
+ with tc gt 1
135
+ with tc lt 3
136
+ end
137
+
138
+ expect(result).to eq([{"name" => "2 tags"}])
139
+ end
140
+
141
+ it 'should filter by multiple filters' do
142
+ gs = CQL::Repository.new("#{@feature_fixtures_directory}/scen_outlines/filters/tag_count")
143
+
144
+ result = gs.query do
145
+ select name
146
+ from scenario_outlines
147
+ with tc gt 1
148
+ with tc lt 3
149
+ end
150
+
151
+ expect(result).to eq([{"name" => "2 tags"}])
152
+ end
153
+
154
+ #todo - add line filter tests for scenario outlines
155
+ #todo - add line count filter tests for scenario outlines
156
+
157
+ # # Name
158
+ # # Name match
159
+ #
160
+ # # Example count
161
+ end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+
3
+ shared_examples_for 'a line count filterable target set' do |target_type, test_data|
4
+
5
+ describe 'line count filters' do
6
+
7
+
8
+ it "should filter based on 'lc lt'" do
9
+ gs = CQL::Repository.new(test_data[:lc_lt][:fixture_location])
10
+
11
+ expected_results = test_data[:lc_lt][:expected_results]
12
+
13
+ expected_results.each do |number, expected|
14
+ result = gs.query do
15
+ select name
16
+ from target_type
17
+ with lc lt number
18
+ end
19
+
20
+ expect(result).to eq(expected)
21
+ end
22
+ end
23
+
24
+ it "should filter based on 'lc_lte'" do
25
+ gs = CQL::Repository.new(test_data[:lc_lte][:fixture_location])
26
+
27
+ expected_results = test_data[:lc_lte][:expected_results]
28
+
29
+ expected_results.each do |number, expected|
30
+ result = gs.query do
31
+ select name
32
+ from target_type
33
+ with lc lte number
34
+ end
35
+
36
+ expect(result).to eq(expected)
37
+ end
38
+ end
39
+
40
+ it "should filter based on 'lc_gt'" do
41
+ gs = CQL::Repository.new(test_data[:lc_gt][:fixture_location])
42
+
43
+ expected_results = test_data[:lc_gt][:expected_results]
44
+
45
+ expected_results.each do |number, expected|
46
+ result = gs.query do
47
+ select name
48
+ from target_type
49
+ with lc gt number
50
+ end
51
+
52
+ expect(result).to eq(expected)
53
+ end
54
+ end
55
+
56
+ it "should filter based on 'lc_gte'" do
57
+ gs = CQL::Repository.new(test_data[:lc_gte][:fixture_location])
58
+
59
+ expected_results = test_data[:lc_gte][:expected_results]
60
+
61
+ expected_results.each do |number, expected|
62
+ result = gs.query do
63
+ select name
64
+ from target_type
65
+ with lc gte number
66
+ end
67
+
68
+ expect(result).to eq(expected)
69
+ end
70
+ end
71
+
72
+ end
73
+ end