expressir 0.2.0 → 0.2.1
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.
- checksums.yaml +4 -4
- data/demo.rb +3 -1
- data/expressir.gemspec +1 -1
- data/lib/expressir/express.rb +0 -1
- data/lib/expressir/express_exp/generated/ExpressLexer.rb +235 -232
- data/lib/expressir/express_exp/generated/ExpressParser.rb +1461 -1435
- data/lib/expressir/express_exp/parser.rb +8 -3
- data/lib/expressir/express_exp/visitor.rb +167 -136
- data/lib/expressir/model.rb +91 -0
- data/lib/expressir/model/constant.rb +2 -0
- data/lib/expressir/model/derived.rb +4 -0
- data/lib/expressir/model/entity.rb +12 -0
- data/lib/expressir/model/enumeration_item.rb +13 -0
- data/lib/expressir/model/explicit.rb +4 -0
- data/lib/expressir/model/expressions/aggregate_initializer.rb +13 -0
- data/lib/expressir/model/expressions/query.rb +8 -0
- data/lib/expressir/model/function.rb +31 -0
- data/lib/expressir/model/inverse.rb +4 -0
- data/lib/expressir/model/literals/binary.rb +13 -0
- data/lib/expressir/model/literals/integer.rb +13 -0
- data/lib/expressir/model/literals/logical.rb +13 -0
- data/lib/expressir/model/literals/real.rb +13 -0
- data/lib/expressir/model/literals/string.rb +15 -0
- data/lib/expressir/model/local.rb +2 -0
- data/lib/expressir/model/parameter.rb +2 -0
- data/lib/expressir/model/procedure.rb +31 -0
- data/lib/expressir/model/repository.rb +6 -0
- data/lib/expressir/model/rule.rb +31 -0
- data/lib/expressir/model/schema.rb +10 -0
- data/lib/expressir/model/statements/alias.rb +8 -0
- data/lib/expressir/model/statements/case_action.rb +2 -2
- data/lib/expressir/model/statements/if.rb +2 -2
- data/lib/expressir/model/statements/repeat.rb +10 -2
- data/lib/expressir/model/subtype_constraint.rb +2 -0
- data/lib/expressir/model/type.rb +8 -0
- data/lib/expressir/model/types/aggregate.rb +2 -0
- data/lib/expressir/model/types/enumeration.rb +4 -4
- data/lib/expressir/model/types/generic.rb +2 -0
- data/lib/expressir/model/types/generic_entity.rb +2 -0
- data/lib/expressir/model/types/select.rb +4 -4
- data/lib/expressir/model/unique.rb +2 -0
- data/lib/expressir/model/where.rb +2 -0
- data/lib/expressir/version.rb +1 -1
- data/original/examples/syntax/remark.exp +127 -0
- data/original/examples/syntax/syntax.exp +15 -10
- data/spec/expressir/express_exp/remark_spec.rb +301 -0
- data/spec/expressir/express_exp/syntax_spec.rb +659 -307
- metadata +15 -6
- data/lib/expressir/model/expressions/unknown.rb +0 -8
@@ -0,0 +1,301 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
require "expressir/express_exp/parser"
|
3
|
+
|
4
|
+
RSpec.describe Expressir::ExpressExp::Parser do
|
5
|
+
describe ".from_file" do
|
6
|
+
it "build an instance from a file" do
|
7
|
+
repo = Expressir::ExpressExp::Parser.from_exp(sample_file)
|
8
|
+
|
9
|
+
schema = repo.schemas.first
|
10
|
+
|
11
|
+
schema.tap do |x|
|
12
|
+
expect(x).to be_instance_of(Expressir::Model::Schema)
|
13
|
+
expect(x.remarks).to be_instance_of(Array)
|
14
|
+
expect(x.remarks.count).to eq(2)
|
15
|
+
expect(x.remarks[0]).to eq("universal scope - schema before")
|
16
|
+
expect(x.remarks[1]).to eq("universal scope - schema")
|
17
|
+
end
|
18
|
+
|
19
|
+
schema.constants.first.tap do |x|
|
20
|
+
expect(x).to be_instance_of(Expressir::Model::Constant)
|
21
|
+
expect(x.remarks).to be_instance_of(Array)
|
22
|
+
expect(x.remarks.count).to eq(2)
|
23
|
+
expect(x.remarks[0]).to eq("schema scope - constant")
|
24
|
+
expect(x.remarks[1]).to eq("universal scope - constant")
|
25
|
+
end
|
26
|
+
|
27
|
+
schema.types.first.tap do |x|
|
28
|
+
expect(x).to be_instance_of(Expressir::Model::Type)
|
29
|
+
expect(x.remarks).to be_instance_of(Array)
|
30
|
+
expect(x.remarks.count).to eq(2)
|
31
|
+
expect(x.remarks[0]).to eq("schema scope - type")
|
32
|
+
expect(x.remarks[1]).to eq("universal scope - type")
|
33
|
+
end
|
34
|
+
|
35
|
+
schema.entities.first.tap do |x|
|
36
|
+
expect(x).to be_instance_of(Expressir::Model::Entity)
|
37
|
+
expect(x.remarks).to be_instance_of(Array)
|
38
|
+
expect(x.remarks.count).to eq(2)
|
39
|
+
expect(x.remarks[0]).to eq("schema scope - entity")
|
40
|
+
expect(x.remarks[1]).to eq("universal scope - entity")
|
41
|
+
end
|
42
|
+
|
43
|
+
schema.entities.first.explicit.first.tap do |x|
|
44
|
+
expect(x).to be_instance_of(Expressir::Model::Explicit)
|
45
|
+
expect(x.remarks).to be_instance_of(Array)
|
46
|
+
expect(x.remarks.count).to eq(3)
|
47
|
+
expect(x.remarks[0]).to eq("entity scope - entity explicit")
|
48
|
+
expect(x.remarks[1]).to eq("schema scope - entity explicit")
|
49
|
+
expect(x.remarks[2]).to eq("universal scope - entity explicit")
|
50
|
+
end
|
51
|
+
|
52
|
+
schema.entities.first.derived.first.tap do |x|
|
53
|
+
expect(x).to be_instance_of(Expressir::Model::Derived)
|
54
|
+
expect(x.remarks).to be_instance_of(Array)
|
55
|
+
expect(x.remarks.count).to eq(3)
|
56
|
+
expect(x.remarks[0]).to eq("entity scope - entity derived")
|
57
|
+
expect(x.remarks[1]).to eq("schema scope - entity derived")
|
58
|
+
expect(x.remarks[2]).to eq("universal scope - entity derived")
|
59
|
+
end
|
60
|
+
|
61
|
+
schema.entities.first.inverse.first.tap do |x|
|
62
|
+
expect(x).to be_instance_of(Expressir::Model::Inverse)
|
63
|
+
expect(x.remarks).to be_instance_of(Array)
|
64
|
+
expect(x.remarks.count).to eq(3)
|
65
|
+
expect(x.remarks[0]).to eq("entity scope - entity inverse")
|
66
|
+
expect(x.remarks[1]).to eq("schema scope - entity inverse")
|
67
|
+
expect(x.remarks[2]).to eq("universal scope - entity inverse")
|
68
|
+
end
|
69
|
+
|
70
|
+
schema.entities.first.unique.first.tap do |x|
|
71
|
+
expect(x).to be_instance_of(Expressir::Model::Unique)
|
72
|
+
expect(x.remarks).to be_instance_of(Array)
|
73
|
+
expect(x.remarks.count).to eq(3)
|
74
|
+
expect(x.remarks[0]).to eq("entity scope - entity unique")
|
75
|
+
expect(x.remarks[1]).to eq("schema scope - entity unique")
|
76
|
+
expect(x.remarks[2]).to eq("universal scope - entity unique")
|
77
|
+
end
|
78
|
+
|
79
|
+
schema.entities.first.where.first.tap do |x|
|
80
|
+
expect(x).to be_instance_of(Expressir::Model::Where)
|
81
|
+
expect(x.remarks).to be_instance_of(Array)
|
82
|
+
expect(x.remarks.count).to eq(3)
|
83
|
+
expect(x.remarks[0]).to eq("entity scope - entity where")
|
84
|
+
expect(x.remarks[1]).to eq("schema scope - entity where")
|
85
|
+
expect(x.remarks[2]).to eq("universal scope - entity where")
|
86
|
+
end
|
87
|
+
|
88
|
+
schema.subtype_constraints.first.tap do |x|
|
89
|
+
expect(x).to be_instance_of(Expressir::Model::SubtypeConstraint)
|
90
|
+
expect(x.remarks).to be_instance_of(Array)
|
91
|
+
expect(x.remarks.count).to eq(2)
|
92
|
+
expect(x.remarks[0]).to eq("schema scope - subtype constraint")
|
93
|
+
expect(x.remarks[1]).to eq("universal scope - subtype constraint")
|
94
|
+
end
|
95
|
+
|
96
|
+
schema.functions.first.tap do |x|
|
97
|
+
expect(x).to be_instance_of(Expressir::Model::Function)
|
98
|
+
expect(x.remarks).to be_instance_of(Array)
|
99
|
+
expect(x.remarks.count).to eq(2)
|
100
|
+
expect(x.remarks[0]).to eq("schema scope - function")
|
101
|
+
expect(x.remarks[1]).to eq("universal scope - function")
|
102
|
+
end
|
103
|
+
|
104
|
+
schema.functions.first.parameters.first.tap do |x|
|
105
|
+
expect(x).to be_instance_of(Expressir::Model::Parameter)
|
106
|
+
expect(x.remarks).to be_instance_of(Array)
|
107
|
+
expect(x.remarks.count).to eq(3)
|
108
|
+
expect(x.remarks[0]).to eq("function scope - function parameter")
|
109
|
+
expect(x.remarks[1]).to eq("schema scope - function parameter")
|
110
|
+
expect(x.remarks[2]).to eq("universal scope - function parameter")
|
111
|
+
end
|
112
|
+
|
113
|
+
schema.functions.first.types.first.tap do |x|
|
114
|
+
expect(x).to be_instance_of(Expressir::Model::Type)
|
115
|
+
expect(x.remarks).to be_instance_of(Array)
|
116
|
+
expect(x.remarks.count).to eq(3)
|
117
|
+
expect(x.remarks[0]).to eq("function scope - function type")
|
118
|
+
expect(x.remarks[1]).to eq("schema scope - function type")
|
119
|
+
expect(x.remarks[2]).to eq("universal scope - function type")
|
120
|
+
end
|
121
|
+
|
122
|
+
schema.functions.first.constants.first.tap do |x|
|
123
|
+
expect(x).to be_instance_of(Expressir::Model::Constant)
|
124
|
+
expect(x.remarks).to be_instance_of(Array)
|
125
|
+
expect(x.remarks.count).to eq(3)
|
126
|
+
expect(x.remarks[0]).to eq("function scope - function constant")
|
127
|
+
expect(x.remarks[1]).to eq("schema scope - function constant")
|
128
|
+
expect(x.remarks[2]).to eq("universal scope - function constant")
|
129
|
+
end
|
130
|
+
|
131
|
+
schema.functions.first.locals.first.tap do |x|
|
132
|
+
expect(x).to be_instance_of(Expressir::Model::Local)
|
133
|
+
expect(x.remarks).to be_instance_of(Array)
|
134
|
+
expect(x.remarks.count).to eq(3)
|
135
|
+
expect(x.remarks[0]).to eq("function scope - function local")
|
136
|
+
expect(x.remarks[1]).to eq("schema scope - function local")
|
137
|
+
expect(x.remarks[2]).to eq("universal scope - function local")
|
138
|
+
end
|
139
|
+
|
140
|
+
schema.functions.first.statements[0].tap do |x|
|
141
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
|
142
|
+
expect(x.remarks).to be_instance_of(Array)
|
143
|
+
expect(x.remarks.count).to eq(1)
|
144
|
+
expect(x.remarks[0]).to eq("function alias scope - function alias")
|
145
|
+
end
|
146
|
+
|
147
|
+
schema.functions.first.statements[1].tap do |x|
|
148
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
149
|
+
expect(x.remarks).to be_instance_of(Array)
|
150
|
+
expect(x.remarks.count).to eq(1)
|
151
|
+
expect(x.remarks[0]).to eq("function repeat scope - function repeat")
|
152
|
+
end
|
153
|
+
|
154
|
+
schema.functions.first.statements[2].tap do |x|
|
155
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
|
156
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Expressions::Query)
|
157
|
+
expect(x.expression.remarks).to be_instance_of(Array)
|
158
|
+
expect(x.expression.remarks.count).to eq(1)
|
159
|
+
expect(x.expression.remarks[0]).to eq("function query scope - function query")
|
160
|
+
end
|
161
|
+
|
162
|
+
schema.procedures.first.tap do |x|
|
163
|
+
expect(x).to be_instance_of(Expressir::Model::Procedure)
|
164
|
+
expect(x.remarks).to be_instance_of(Array)
|
165
|
+
expect(x.remarks.count).to eq(2)
|
166
|
+
expect(x.remarks[0]).to eq("schema scope - procedure")
|
167
|
+
expect(x.remarks[1]).to eq("universal scope - procedure")
|
168
|
+
end
|
169
|
+
|
170
|
+
schema.procedures.first.parameters.first.tap do |x|
|
171
|
+
expect(x).to be_instance_of(Expressir::Model::Parameter)
|
172
|
+
expect(x.remarks).to be_instance_of(Array)
|
173
|
+
expect(x.remarks.count).to eq(3)
|
174
|
+
expect(x.remarks[0]).to eq("procedure scope - procedure parameter")
|
175
|
+
expect(x.remarks[1]).to eq("schema scope - procedure parameter")
|
176
|
+
expect(x.remarks[2]).to eq("universal scope - procedure parameter")
|
177
|
+
end
|
178
|
+
|
179
|
+
schema.procedures.first.types.first.tap do |x|
|
180
|
+
expect(x).to be_instance_of(Expressir::Model::Type)
|
181
|
+
expect(x.remarks).to be_instance_of(Array)
|
182
|
+
expect(x.remarks.count).to eq(3)
|
183
|
+
expect(x.remarks[0]).to eq("procedure scope - procedure type")
|
184
|
+
expect(x.remarks[1]).to eq("schema scope - procedure type")
|
185
|
+
expect(x.remarks[2]).to eq("universal scope - procedure type")
|
186
|
+
end
|
187
|
+
|
188
|
+
schema.procedures.first.constants.first.tap do |x|
|
189
|
+
expect(x).to be_instance_of(Expressir::Model::Constant)
|
190
|
+
expect(x.remarks).to be_instance_of(Array)
|
191
|
+
expect(x.remarks.count).to eq(3)
|
192
|
+
expect(x.remarks[0]).to eq("procedure scope - procedure constant")
|
193
|
+
expect(x.remarks[1]).to eq("schema scope - procedure constant")
|
194
|
+
expect(x.remarks[2]).to eq("universal scope - procedure constant")
|
195
|
+
end
|
196
|
+
|
197
|
+
schema.procedures.first.locals.first.tap do |x|
|
198
|
+
expect(x).to be_instance_of(Expressir::Model::Local)
|
199
|
+
expect(x.remarks).to be_instance_of(Array)
|
200
|
+
expect(x.remarks.count).to eq(3)
|
201
|
+
expect(x.remarks[0]).to eq("procedure scope - procedure local")
|
202
|
+
expect(x.remarks[1]).to eq("schema scope - procedure local")
|
203
|
+
expect(x.remarks[2]).to eq("universal scope - procedure local")
|
204
|
+
end
|
205
|
+
|
206
|
+
schema.procedures.first.statements[0].tap do |x|
|
207
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
|
208
|
+
expect(x.remarks).to be_instance_of(Array)
|
209
|
+
expect(x.remarks.count).to eq(1)
|
210
|
+
expect(x.remarks[0]).to eq("procedure alias scope - procedure alias")
|
211
|
+
end
|
212
|
+
|
213
|
+
schema.procedures.first.statements[1].tap do |x|
|
214
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
215
|
+
expect(x.remarks).to be_instance_of(Array)
|
216
|
+
expect(x.remarks.count).to eq(1)
|
217
|
+
expect(x.remarks[0]).to eq("procedure repeat scope - procedure repeat")
|
218
|
+
end
|
219
|
+
|
220
|
+
schema.procedures.first.statements[2].tap do |x|
|
221
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
|
222
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Expressions::Query)
|
223
|
+
expect(x.expression.remarks).to be_instance_of(Array)
|
224
|
+
expect(x.expression.remarks.count).to eq(1)
|
225
|
+
expect(x.expression.remarks[0]).to eq("procedure query scope - procedure query")
|
226
|
+
end
|
227
|
+
|
228
|
+
schema.rules.first.tap do |x|
|
229
|
+
expect(x).to be_instance_of(Expressir::Model::Rule)
|
230
|
+
expect(x.remarks).to be_instance_of(Array)
|
231
|
+
expect(x.remarks.count).to eq(2)
|
232
|
+
expect(x.remarks[0]).to eq("schema scope - rule")
|
233
|
+
expect(x.remarks[1]).to eq("universal scope - rule")
|
234
|
+
end
|
235
|
+
|
236
|
+
schema.rules.first.types.first.tap do |x|
|
237
|
+
expect(x).to be_instance_of(Expressir::Model::Type)
|
238
|
+
expect(x.remarks).to be_instance_of(Array)
|
239
|
+
expect(x.remarks.count).to eq(3)
|
240
|
+
expect(x.remarks[0]).to eq("rule scope - rule type")
|
241
|
+
expect(x.remarks[1]).to eq("schema scope - rule type")
|
242
|
+
expect(x.remarks[2]).to eq("universal scope - rule type")
|
243
|
+
end
|
244
|
+
|
245
|
+
schema.rules.first.constants.first.tap do |x|
|
246
|
+
expect(x).to be_instance_of(Expressir::Model::Constant)
|
247
|
+
expect(x.remarks).to be_instance_of(Array)
|
248
|
+
expect(x.remarks.count).to eq(3)
|
249
|
+
expect(x.remarks[0]).to eq("rule scope - rule constant")
|
250
|
+
expect(x.remarks[1]).to eq("schema scope - rule constant")
|
251
|
+
expect(x.remarks[2]).to eq("universal scope - rule constant")
|
252
|
+
end
|
253
|
+
|
254
|
+
schema.rules.first.locals.first.tap do |x|
|
255
|
+
expect(x).to be_instance_of(Expressir::Model::Local)
|
256
|
+
expect(x.remarks).to be_instance_of(Array)
|
257
|
+
expect(x.remarks.count).to eq(3)
|
258
|
+
expect(x.remarks[0]).to eq("rule scope - rule local")
|
259
|
+
expect(x.remarks[1]).to eq("schema scope - rule local")
|
260
|
+
expect(x.remarks[2]).to eq("universal scope - rule local")
|
261
|
+
end
|
262
|
+
|
263
|
+
schema.rules.first.statements[0].tap do |x|
|
264
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Alias)
|
265
|
+
expect(x.remarks).to be_instance_of(Array)
|
266
|
+
expect(x.remarks.count).to eq(1)
|
267
|
+
expect(x.remarks[0]).to eq("rule alias scope - rule alias")
|
268
|
+
end
|
269
|
+
|
270
|
+
schema.rules.first.statements[1].tap do |x|
|
271
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
272
|
+
expect(x.remarks).to be_instance_of(Array)
|
273
|
+
expect(x.remarks.count).to eq(1)
|
274
|
+
expect(x.remarks[0]).to eq("rule repeat scope - rule repeat")
|
275
|
+
end
|
276
|
+
|
277
|
+
schema.rules.first.statements[2].tap do |x|
|
278
|
+
expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
|
279
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Expressions::Query)
|
280
|
+
expect(x.expression.remarks).to be_instance_of(Array)
|
281
|
+
expect(x.expression.remarks.count).to eq(1)
|
282
|
+
expect(x.expression.remarks[0]).to eq("rule query scope - rule query")
|
283
|
+
end
|
284
|
+
|
285
|
+
schema.rules.first.where.first.tap do |x|
|
286
|
+
expect(x).to be_instance_of(Expressir::Model::Where)
|
287
|
+
expect(x.remarks).to be_instance_of(Array)
|
288
|
+
expect(x.remarks.count).to eq(3)
|
289
|
+
expect(x.remarks[0]).to eq("rule scope - rule where")
|
290
|
+
expect(x.remarks[1]).to eq("schema scope - rule where")
|
291
|
+
expect(x.remarks[2]).to eq("universal scope - rule where")
|
292
|
+
end
|
293
|
+
end
|
294
|
+
end
|
295
|
+
|
296
|
+
def sample_file
|
297
|
+
@sample_file ||= Expressir.root_path.join(
|
298
|
+
"original", "examples", "syntax", "remark.exp"
|
299
|
+
)
|
300
|
+
end
|
301
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require "spec_helper"
|
2
|
-
|
2
|
+
require "expressir/express_exp/parser"
|
3
3
|
|
4
4
|
RSpec.describe Expressir::ExpressExp::Parser do
|
5
5
|
describe ".from_file" do
|
@@ -9,7 +9,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
9
9
|
schemas = repo.schemas
|
10
10
|
|
11
11
|
schema = schemas.find{|x| x.id == "syntaxSchema"}
|
12
|
-
expect(schema.version).to
|
12
|
+
expect(schema.version).to be_instance_of(Expressir::Model::Literals::String)
|
13
|
+
expect(schema.version.value).to eq("version")
|
13
14
|
|
14
15
|
interfaces = schema.interfaces
|
15
16
|
constants = schema.constants
|
@@ -67,35 +68,44 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
67
68
|
|
68
69
|
# literals
|
69
70
|
constants.find{|x| x.id == "binaryExpression"}.expression.tap do |x|
|
70
|
-
expect(x).to
|
71
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::Binary)
|
72
|
+
expect(x.value).to eq("011110000111100001111000")
|
71
73
|
end
|
72
74
|
|
73
75
|
constants.find{|x| x.id == "integerExpression"}.expression.tap do |x|
|
74
|
-
expect(x).to
|
76
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::Integer)
|
77
|
+
expect(x.value).to eq("999")
|
75
78
|
end
|
76
79
|
|
77
|
-
constants.find{|x| x.id == "
|
78
|
-
expect(x).to
|
80
|
+
constants.find{|x| x.id == "trueLogicalExpression"}.expression.tap do |x|
|
81
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::Logical)
|
82
|
+
expect(x.value).to eq(true)
|
79
83
|
end
|
80
84
|
|
81
|
-
constants.find{|x| x.id == "
|
82
|
-
expect(x).to
|
85
|
+
constants.find{|x| x.id == "falseLogicalExpression"}.expression.tap do |x|
|
86
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::Logical)
|
87
|
+
expect(x.value).to eq(false)
|
83
88
|
end
|
84
89
|
|
85
|
-
constants.find{|x| x.id == "
|
86
|
-
expect(x).to be_instance_of(Expressir::Model::
|
90
|
+
constants.find{|x| x.id == "unknownLogicalExpression"}.expression.tap do |x|
|
91
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::Logical)
|
92
|
+
expect(x.value).to eq(nil)
|
87
93
|
end
|
88
94
|
|
89
95
|
constants.find{|x| x.id == "realExpression"}.expression.tap do |x|
|
90
|
-
expect(x).to
|
96
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::Real)
|
97
|
+
expect(x.value).to eq("999.999")
|
91
98
|
end
|
92
99
|
|
93
|
-
constants.find{|x| x.id == "
|
94
|
-
expect(x).to
|
100
|
+
constants.find{|x| x.id == "simpleStringExpression"}.expression.tap do |x|
|
101
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::String)
|
102
|
+
expect(x.value).to eq("xxx")
|
95
103
|
end
|
96
104
|
|
97
|
-
constants.find{|x| x.id == "
|
98
|
-
expect(x).to
|
105
|
+
constants.find{|x| x.id == "encodedStringExpression"}.expression.tap do |x|
|
106
|
+
expect(x).to be_instance_of(Expressir::Model::Literals::String)
|
107
|
+
expect(x.value).to eq("000000780000007800000078")
|
108
|
+
expect(x.encoded).to eq(true)
|
99
109
|
end
|
100
110
|
|
101
111
|
# constants
|
@@ -126,7 +136,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
126
136
|
expect(x.function.id).to eq("ABS")
|
127
137
|
expect(x.parameters).to be_instance_of(Array)
|
128
138
|
expect(x.parameters.count).to eq(1)
|
129
|
-
expect(x.parameters[0]).to
|
139
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
140
|
+
expect(x.parameters[0].value).to eq(true)
|
130
141
|
end
|
131
142
|
|
132
143
|
constants.find{|x| x.id == "acosExpression"}.expression.tap do |x|
|
@@ -135,7 +146,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
135
146
|
expect(x.function.id).to eq("ACOS")
|
136
147
|
expect(x.parameters).to be_instance_of(Array)
|
137
148
|
expect(x.parameters.count).to eq(1)
|
138
|
-
expect(x.parameters[0]).to
|
149
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
150
|
+
expect(x.parameters[0].value).to eq(true)
|
139
151
|
end
|
140
152
|
|
141
153
|
constants.find{|x| x.id == "asinExpression"}.expression.tap do |x|
|
@@ -144,7 +156,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
144
156
|
expect(x.function.id).to eq("ASIN")
|
145
157
|
expect(x.parameters).to be_instance_of(Array)
|
146
158
|
expect(x.parameters.count).to eq(1)
|
147
|
-
expect(x.parameters[0]).to
|
159
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
160
|
+
expect(x.parameters[0].value).to eq(true)
|
148
161
|
end
|
149
162
|
|
150
163
|
constants.find{|x| x.id == "atanExpression"}.expression.tap do |x|
|
@@ -153,7 +166,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
153
166
|
expect(x.function.id).to eq("ATAN")
|
154
167
|
expect(x.parameters).to be_instance_of(Array)
|
155
168
|
expect(x.parameters.count).to eq(1)
|
156
|
-
expect(x.parameters[0]).to
|
169
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
170
|
+
expect(x.parameters[0].value).to eq(true)
|
157
171
|
end
|
158
172
|
|
159
173
|
constants.find{|x| x.id == "blengthExpression"}.expression.tap do |x|
|
@@ -162,7 +176,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
162
176
|
expect(x.function.id).to eq("BLENGTH")
|
163
177
|
expect(x.parameters).to be_instance_of(Array)
|
164
178
|
expect(x.parameters.count).to eq(1)
|
165
|
-
expect(x.parameters[0]).to
|
179
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
180
|
+
expect(x.parameters[0].value).to eq(true)
|
166
181
|
end
|
167
182
|
|
168
183
|
constants.find{|x| x.id == "cosExpression"}.expression.tap do |x|
|
@@ -171,7 +186,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
171
186
|
expect(x.function.id).to eq("COS")
|
172
187
|
expect(x.parameters).to be_instance_of(Array)
|
173
188
|
expect(x.parameters.count).to eq(1)
|
174
|
-
expect(x.parameters[0]).to
|
189
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
190
|
+
expect(x.parameters[0].value).to eq(true)
|
175
191
|
end
|
176
192
|
|
177
193
|
constants.find{|x| x.id == "existsExpression"}.expression.tap do |x|
|
@@ -180,7 +196,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
180
196
|
expect(x.function.id).to eq("EXISTS")
|
181
197
|
expect(x.parameters).to be_instance_of(Array)
|
182
198
|
expect(x.parameters.count).to eq(1)
|
183
|
-
expect(x.parameters[0]).to
|
199
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
200
|
+
expect(x.parameters[0].value).to eq(true)
|
184
201
|
end
|
185
202
|
|
186
203
|
constants.find{|x| x.id == "expExpression"}.expression.tap do |x|
|
@@ -189,7 +206,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
189
206
|
expect(x.function.id).to eq("EXP")
|
190
207
|
expect(x.parameters).to be_instance_of(Array)
|
191
208
|
expect(x.parameters.count).to eq(1)
|
192
|
-
expect(x.parameters[0]).to
|
209
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
210
|
+
expect(x.parameters[0].value).to eq(true)
|
193
211
|
end
|
194
212
|
|
195
213
|
constants.find{|x| x.id == "formatExpression"}.expression.tap do |x|
|
@@ -198,7 +216,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
198
216
|
expect(x.function.id).to eq("FORMAT")
|
199
217
|
expect(x.parameters).to be_instance_of(Array)
|
200
218
|
expect(x.parameters.count).to eq(1)
|
201
|
-
expect(x.parameters[0]).to
|
219
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
220
|
+
expect(x.parameters[0].value).to eq(true)
|
202
221
|
end
|
203
222
|
|
204
223
|
constants.find{|x| x.id == "hiboundExpression"}.expression.tap do |x|
|
@@ -207,7 +226,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
207
226
|
expect(x.function.id).to eq("HIBOUND")
|
208
227
|
expect(x.parameters).to be_instance_of(Array)
|
209
228
|
expect(x.parameters.count).to eq(1)
|
210
|
-
expect(x.parameters[0]).to
|
229
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
230
|
+
expect(x.parameters[0].value).to eq(true)
|
211
231
|
end
|
212
232
|
|
213
233
|
constants.find{|x| x.id == "hiindexExpression"}.expression.tap do |x|
|
@@ -216,7 +236,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
216
236
|
expect(x.function.id).to eq("HIINDEX")
|
217
237
|
expect(x.parameters).to be_instance_of(Array)
|
218
238
|
expect(x.parameters.count).to eq(1)
|
219
|
-
expect(x.parameters[0]).to
|
239
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
240
|
+
expect(x.parameters[0].value).to eq(true)
|
220
241
|
end
|
221
242
|
|
222
243
|
constants.find{|x| x.id == "lengthExpression"}.expression.tap do |x|
|
@@ -225,7 +246,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
225
246
|
expect(x.function.id).to eq("LENGTH")
|
226
247
|
expect(x.parameters).to be_instance_of(Array)
|
227
248
|
expect(x.parameters.count).to eq(1)
|
228
|
-
expect(x.parameters[0]).to
|
249
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
250
|
+
expect(x.parameters[0].value).to eq(true)
|
229
251
|
end
|
230
252
|
|
231
253
|
constants.find{|x| x.id == "loboundExpression"}.expression.tap do |x|
|
@@ -234,7 +256,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
234
256
|
expect(x.function.id).to eq("LOBOUND")
|
235
257
|
expect(x.parameters).to be_instance_of(Array)
|
236
258
|
expect(x.parameters.count).to eq(1)
|
237
|
-
expect(x.parameters[0]).to
|
259
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
260
|
+
expect(x.parameters[0].value).to eq(true)
|
238
261
|
end
|
239
262
|
|
240
263
|
constants.find{|x| x.id == "loindexExpression"}.expression.tap do |x|
|
@@ -243,7 +266,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
243
266
|
expect(x.function.id).to eq("LOINDEX")
|
244
267
|
expect(x.parameters).to be_instance_of(Array)
|
245
268
|
expect(x.parameters.count).to eq(1)
|
246
|
-
expect(x.parameters[0]).to
|
269
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
270
|
+
expect(x.parameters[0].value).to eq(true)
|
247
271
|
end
|
248
272
|
|
249
273
|
constants.find{|x| x.id == "logExpression"}.expression.tap do |x|
|
@@ -252,7 +276,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
252
276
|
expect(x.function.id).to eq("LOG")
|
253
277
|
expect(x.parameters).to be_instance_of(Array)
|
254
278
|
expect(x.parameters.count).to eq(1)
|
255
|
-
expect(x.parameters[0]).to
|
279
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
280
|
+
expect(x.parameters[0].value).to eq(true)
|
256
281
|
end
|
257
282
|
|
258
283
|
constants.find{|x| x.id == "log2Expression"}.expression.tap do |x|
|
@@ -261,7 +286,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
261
286
|
expect(x.function.id).to eq("LOG2")
|
262
287
|
expect(x.parameters).to be_instance_of(Array)
|
263
288
|
expect(x.parameters.count).to eq(1)
|
264
|
-
expect(x.parameters[0]).to
|
289
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
290
|
+
expect(x.parameters[0].value).to eq(true)
|
265
291
|
end
|
266
292
|
|
267
293
|
constants.find{|x| x.id == "log10Expression"}.expression.tap do |x|
|
@@ -270,7 +296,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
270
296
|
expect(x.function.id).to eq("LOG10")
|
271
297
|
expect(x.parameters).to be_instance_of(Array)
|
272
298
|
expect(x.parameters.count).to eq(1)
|
273
|
-
expect(x.parameters[0]).to
|
299
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
300
|
+
expect(x.parameters[0].value).to eq(true)
|
274
301
|
end
|
275
302
|
|
276
303
|
constants.find{|x| x.id == "nvlExpression"}.expression.tap do |x|
|
@@ -279,7 +306,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
279
306
|
expect(x.function.id).to eq("NVL")
|
280
307
|
expect(x.parameters).to be_instance_of(Array)
|
281
308
|
expect(x.parameters.count).to eq(1)
|
282
|
-
expect(x.parameters[0]).to
|
309
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
310
|
+
expect(x.parameters[0].value).to eq(true)
|
283
311
|
end
|
284
312
|
|
285
313
|
constants.find{|x| x.id == "oddExpression"}.expression.tap do |x|
|
@@ -288,7 +316,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
288
316
|
expect(x.function.id).to eq("ODD")
|
289
317
|
expect(x.parameters).to be_instance_of(Array)
|
290
318
|
expect(x.parameters.count).to eq(1)
|
291
|
-
expect(x.parameters[0]).to
|
319
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
320
|
+
expect(x.parameters[0].value).to eq(true)
|
292
321
|
end
|
293
322
|
|
294
323
|
constants.find{|x| x.id == "rolesofExpression"}.expression.tap do |x|
|
@@ -297,7 +326,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
297
326
|
expect(x.function.id).to eq("ROLESOF")
|
298
327
|
expect(x.parameters).to be_instance_of(Array)
|
299
328
|
expect(x.parameters.count).to eq(1)
|
300
|
-
expect(x.parameters[0]).to
|
329
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
330
|
+
expect(x.parameters[0].value).to eq(true)
|
301
331
|
end
|
302
332
|
|
303
333
|
constants.find{|x| x.id == "sinExpression"}.expression.tap do |x|
|
@@ -306,7 +336,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
306
336
|
expect(x.function.id).to eq("SIN")
|
307
337
|
expect(x.parameters).to be_instance_of(Array)
|
308
338
|
expect(x.parameters.count).to eq(1)
|
309
|
-
expect(x.parameters[0]).to
|
339
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
340
|
+
expect(x.parameters[0].value).to eq(true)
|
310
341
|
end
|
311
342
|
|
312
343
|
constants.find{|x| x.id == "sizeofExpression"}.expression.tap do |x|
|
@@ -315,7 +346,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
315
346
|
expect(x.function.id).to eq("SIZEOF")
|
316
347
|
expect(x.parameters).to be_instance_of(Array)
|
317
348
|
expect(x.parameters.count).to eq(1)
|
318
|
-
expect(x.parameters[0]).to
|
349
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
350
|
+
expect(x.parameters[0].value).to eq(true)
|
319
351
|
end
|
320
352
|
|
321
353
|
constants.find{|x| x.id == "sqrtExpression"}.expression.tap do |x|
|
@@ -324,7 +356,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
324
356
|
expect(x.function.id).to eq("SQRT")
|
325
357
|
expect(x.parameters).to be_instance_of(Array)
|
326
358
|
expect(x.parameters.count).to eq(1)
|
327
|
-
expect(x.parameters[0]).to
|
359
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
360
|
+
expect(x.parameters[0].value).to eq(true)
|
328
361
|
end
|
329
362
|
|
330
363
|
constants.find{|x| x.id == "tanExpression"}.expression.tap do |x|
|
@@ -333,7 +366,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
333
366
|
expect(x.function.id).to eq("TAN")
|
334
367
|
expect(x.parameters).to be_instance_of(Array)
|
335
368
|
expect(x.parameters.count).to eq(1)
|
336
|
-
expect(x.parameters[0]).to
|
369
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
370
|
+
expect(x.parameters[0].value).to eq(true)
|
337
371
|
end
|
338
372
|
|
339
373
|
constants.find{|x| x.id == "typeofExpression"}.expression.tap do |x|
|
@@ -342,7 +376,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
342
376
|
expect(x.function.id).to eq("TYPEOF")
|
343
377
|
expect(x.parameters).to be_instance_of(Array)
|
344
378
|
expect(x.parameters.count).to eq(1)
|
345
|
-
expect(x.parameters[0]).to
|
379
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
380
|
+
expect(x.parameters[0].value).to eq(true)
|
346
381
|
end
|
347
382
|
|
348
383
|
constants.find{|x| x.id == "usedinExpression"}.expression.tap do |x|
|
@@ -351,7 +386,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
351
386
|
expect(x.function.id).to eq("USEDIN")
|
352
387
|
expect(x.parameters).to be_instance_of(Array)
|
353
388
|
expect(x.parameters.count).to eq(1)
|
354
|
-
expect(x.parameters[0]).to
|
389
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
390
|
+
expect(x.parameters[0].value).to eq(true)
|
355
391
|
end
|
356
392
|
|
357
393
|
constants.find{|x| x.id == "valueExpression"}.expression.tap do |x|
|
@@ -360,7 +396,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
360
396
|
expect(x.function.id).to eq("VALUE")
|
361
397
|
expect(x.parameters).to be_instance_of(Array)
|
362
398
|
expect(x.parameters.count).to eq(1)
|
363
|
-
expect(x.parameters[0]).to
|
399
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
400
|
+
expect(x.parameters[0].value).to eq(true)
|
364
401
|
end
|
365
402
|
|
366
403
|
constants.find{|x| x.id == "valueInExpression"}.expression.tap do |x|
|
@@ -369,7 +406,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
369
406
|
expect(x.function.id).to eq("VALUE_IN")
|
370
407
|
expect(x.parameters).to be_instance_of(Array)
|
371
408
|
expect(x.parameters.count).to eq(1)
|
372
|
-
expect(x.parameters[0]).to
|
409
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
410
|
+
expect(x.parameters[0].value).to eq(true)
|
373
411
|
end
|
374
412
|
|
375
413
|
constants.find{|x| x.id == "valueUniqueExpression"}.expression.tap do |x|
|
@@ -378,7 +416,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
378
416
|
expect(x.function.id).to eq("VALUE_UNIQUE")
|
379
417
|
expect(x.parameters).to be_instance_of(Array)
|
380
418
|
expect(x.parameters.count).to eq(1)
|
381
|
-
expect(x.parameters[0]).to
|
419
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
420
|
+
expect(x.parameters[0].value).to eq(true)
|
382
421
|
end
|
383
422
|
|
384
423
|
# operations
|
@@ -387,7 +426,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
387
426
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::UnaryPlus)
|
388
427
|
expect(x.operands).to be_instance_of(Array)
|
389
428
|
expect(x.operands.count).to eq(1)
|
390
|
-
expect(x.operands[0]).to
|
429
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
430
|
+
expect(x.operands[0].value).to eq("4")
|
391
431
|
end
|
392
432
|
|
393
433
|
constants.find{|x| x.id == "unaryMinusExpression"}.expression.tap do |x|
|
@@ -395,7 +435,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
395
435
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::UnaryMinus)
|
396
436
|
expect(x.operands).to be_instance_of(Array)
|
397
437
|
expect(x.operands.count).to eq(1)
|
398
|
-
expect(x.operands[0]).to
|
438
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
439
|
+
expect(x.operands[0].value).to eq("4")
|
399
440
|
end
|
400
441
|
|
401
442
|
constants.find{|x| x.id == "additionExpression"}.expression.tap do |x|
|
@@ -403,8 +444,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
403
444
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
404
445
|
expect(x.operands).to be_instance_of(Array)
|
405
446
|
expect(x.operands.count).to eq(2)
|
406
|
-
expect(x.operands[0]).to
|
407
|
-
expect(x.operands[
|
447
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
448
|
+
expect(x.operands[0].value).to eq("4")
|
449
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
450
|
+
expect(x.operands[1].value).to eq("2")
|
408
451
|
end
|
409
452
|
|
410
453
|
constants.find{|x| x.id == "subtractionExpression"}.expression.tap do |x|
|
@@ -412,8 +455,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
412
455
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
|
413
456
|
expect(x.operands).to be_instance_of(Array)
|
414
457
|
expect(x.operands.count).to eq(2)
|
415
|
-
expect(x.operands[0]).to
|
416
|
-
expect(x.operands[
|
458
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
459
|
+
expect(x.operands[0].value).to eq("4")
|
460
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
461
|
+
expect(x.operands[1].value).to eq("2")
|
417
462
|
end
|
418
463
|
|
419
464
|
constants.find{|x| x.id == "multiplicationExpression"}.expression.tap do |x|
|
@@ -421,8 +466,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
421
466
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
|
422
467
|
expect(x.operands).to be_instance_of(Array)
|
423
468
|
expect(x.operands.count).to eq(2)
|
424
|
-
expect(x.operands[0]).to
|
425
|
-
expect(x.operands[
|
469
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
470
|
+
expect(x.operands[0].value).to eq("4")
|
471
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
472
|
+
expect(x.operands[1].value).to eq("2")
|
426
473
|
end
|
427
474
|
|
428
475
|
constants.find{|x| x.id == "realDivisionExpression"}.expression.tap do |x|
|
@@ -430,8 +477,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
430
477
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::RealDivision)
|
431
478
|
expect(x.operands).to be_instance_of(Array)
|
432
479
|
expect(x.operands.count).to eq(2)
|
433
|
-
expect(x.operands[0]).to
|
434
|
-
expect(x.operands[
|
480
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
481
|
+
expect(x.operands[0].value).to eq("4")
|
482
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
483
|
+
expect(x.operands[1].value).to eq("2")
|
435
484
|
end
|
436
485
|
|
437
486
|
constants.find{|x| x.id == "integerDivisionExpression"}.expression.tap do |x|
|
@@ -439,8 +488,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
439
488
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::IntegerDivision)
|
440
489
|
expect(x.operands).to be_instance_of(Array)
|
441
490
|
expect(x.operands.count).to eq(2)
|
442
|
-
expect(x.operands[0]).to
|
443
|
-
expect(x.operands[
|
491
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
492
|
+
expect(x.operands[0].value).to eq("4")
|
493
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
494
|
+
expect(x.operands[1].value).to eq("2")
|
444
495
|
end
|
445
496
|
|
446
497
|
constants.find{|x| x.id == "moduloExpression"}.expression.tap do |x|
|
@@ -448,8 +499,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
448
499
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Modulo)
|
449
500
|
expect(x.operands).to be_instance_of(Array)
|
450
501
|
expect(x.operands.count).to eq(2)
|
451
|
-
expect(x.operands[0]).to
|
452
|
-
expect(x.operands[
|
502
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
503
|
+
expect(x.operands[0].value).to eq("4")
|
504
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
505
|
+
expect(x.operands[1].value).to eq("2")
|
453
506
|
end
|
454
507
|
|
455
508
|
constants.find{|x| x.id == "exponentiationExpression"}.expression.tap do |x|
|
@@ -457,8 +510,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
457
510
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Exponentiation)
|
458
511
|
expect(x.operands).to be_instance_of(Array)
|
459
512
|
expect(x.operands.count).to eq(2)
|
460
|
-
expect(x.operands[0]).to
|
461
|
-
expect(x.operands[
|
513
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
514
|
+
expect(x.operands[0].value).to eq("4")
|
515
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
516
|
+
expect(x.operands[1].value).to eq("2")
|
462
517
|
end
|
463
518
|
|
464
519
|
constants.find{|x| x.id == "additionAdditionExpression"}.expression.tap do |x|
|
@@ -470,9 +525,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
470
525
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
471
526
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
472
527
|
expect(x.operands[0].operands.count).to eq(2)
|
473
|
-
expect(x.operands[0].operands[0]).to
|
474
|
-
expect(x.operands[0].operands[
|
475
|
-
expect(x.operands[1]).to
|
528
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
529
|
+
expect(x.operands[0].operands[0].value).to eq("4")
|
530
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
531
|
+
expect(x.operands[0].operands[1].value).to eq("2")
|
532
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
533
|
+
expect(x.operands[1].value).to eq("1")
|
476
534
|
end
|
477
535
|
|
478
536
|
constants.find{|x| x.id == "subtractionSubtractionExpression"}.expression.tap do |x|
|
@@ -484,9 +542,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
484
542
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
|
485
543
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
486
544
|
expect(x.operands[0].operands.count).to eq(2)
|
487
|
-
expect(x.operands[0].operands[0]).to
|
488
|
-
expect(x.operands[0].operands[
|
489
|
-
expect(x.operands[1]).to
|
545
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
546
|
+
expect(x.operands[0].operands[0].value).to eq("4")
|
547
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
548
|
+
expect(x.operands[0].operands[1].value).to eq("2")
|
549
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
550
|
+
expect(x.operands[1].value).to eq("1")
|
490
551
|
end
|
491
552
|
|
492
553
|
constants.find{|x| x.id == "additionSubtractionExpression"}.expression.tap do |x|
|
@@ -498,9 +559,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
498
559
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
499
560
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
500
561
|
expect(x.operands[0].operands.count).to eq(2)
|
501
|
-
expect(x.operands[0].operands[0]).to
|
502
|
-
expect(x.operands[0].operands[
|
503
|
-
expect(x.operands[1]).to
|
562
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
563
|
+
expect(x.operands[0].operands[0].value).to eq("4")
|
564
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
565
|
+
expect(x.operands[0].operands[1].value).to eq("2")
|
566
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
567
|
+
expect(x.operands[1].value).to eq("1")
|
504
568
|
end
|
505
569
|
|
506
570
|
constants.find{|x| x.id == "subtractionAdditionExpression"}.expression.tap do |x|
|
@@ -512,9 +576,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
512
576
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Subtraction)
|
513
577
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
514
578
|
expect(x.operands[0].operands.count).to eq(2)
|
515
|
-
expect(x.operands[0].operands[0]).to
|
516
|
-
expect(x.operands[0].operands[
|
517
|
-
expect(x.operands[1]).to
|
579
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
580
|
+
expect(x.operands[0].operands[0].value).to eq("4")
|
581
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
582
|
+
expect(x.operands[0].operands[1].value).to eq("2")
|
583
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
584
|
+
expect(x.operands[1].value).to eq("1")
|
518
585
|
end
|
519
586
|
|
520
587
|
constants.find{|x| x.id == "additionMultiplicationExpression"}.expression.tap do |x|
|
@@ -522,13 +589,16 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
522
589
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
523
590
|
expect(x.operands).to be_instance_of(Array)
|
524
591
|
expect(x.operands.count).to eq(2)
|
525
|
-
expect(x.operands[0]).to
|
592
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
593
|
+
expect(x.operands[0].value).to eq("8")
|
526
594
|
expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
|
527
595
|
expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
|
528
596
|
expect(x.operands[1].operands).to be_instance_of(Array)
|
529
597
|
expect(x.operands[1].operands.count).to eq(2)
|
530
|
-
expect(x.operands[1].operands[0]).to
|
531
|
-
expect(x.operands[1].operands[
|
598
|
+
expect(x.operands[1].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
599
|
+
expect(x.operands[1].operands[0].value).to eq("4")
|
600
|
+
expect(x.operands[1].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
601
|
+
expect(x.operands[1].operands[1].value).to eq("2")
|
532
602
|
end
|
533
603
|
|
534
604
|
constants.find{|x| x.id == "multiplicationAdditionExpression"}.expression.tap do |x|
|
@@ -540,9 +610,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
540
610
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
|
541
611
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
542
612
|
expect(x.operands[0].operands.count).to eq(2)
|
543
|
-
expect(x.operands[0].operands[0]).to
|
544
|
-
expect(x.operands[0].operands[
|
545
|
-
expect(x.operands[1]).to
|
613
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
614
|
+
expect(x.operands[0].operands[0].value).to eq("8")
|
615
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
616
|
+
expect(x.operands[0].operands[1].value).to eq("4")
|
617
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
618
|
+
expect(x.operands[1].value).to eq("2")
|
546
619
|
end
|
547
620
|
|
548
621
|
constants.find{|x| x.id == "parenthesisAdditionMultiplicationExpression"}.expression.tap do |x|
|
@@ -554,9 +627,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
554
627
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
555
628
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
556
629
|
expect(x.operands[0].operands.count).to eq(2)
|
557
|
-
expect(x.operands[0].operands[0]).to
|
558
|
-
expect(x.operands[0].operands[
|
559
|
-
expect(x.operands[1]).to
|
630
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
631
|
+
expect(x.operands[0].operands[0].value).to eq("8")
|
632
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
633
|
+
expect(x.operands[0].operands[1].value).to eq("4")
|
634
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
635
|
+
expect(x.operands[1].value).to eq("2")
|
560
636
|
end
|
561
637
|
|
562
638
|
constants.find{|x| x.id == "multiplicationParenthesisAdditionExpression"}.expression.tap do |x|
|
@@ -564,13 +640,16 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
564
640
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Multiplication)
|
565
641
|
expect(x.operands).to be_instance_of(Array)
|
566
642
|
expect(x.operands.count).to eq(2)
|
567
|
-
expect(x.operands[0]).to
|
643
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
644
|
+
expect(x.operands[0].value).to eq("8")
|
568
645
|
expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
|
569
646
|
expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
570
647
|
expect(x.operands[1].operands).to be_instance_of(Array)
|
571
648
|
expect(x.operands[1].operands.count).to eq(2)
|
572
|
-
expect(x.operands[1].operands[0]).to
|
573
|
-
expect(x.operands[1].operands[
|
649
|
+
expect(x.operands[1].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
650
|
+
expect(x.operands[1].operands[0].value).to eq("4")
|
651
|
+
expect(x.operands[1].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
652
|
+
expect(x.operands[1].operands[1].value).to eq("2")
|
574
653
|
end
|
575
654
|
|
576
655
|
constants.find{|x| x.id == "equalExpression"}.expression.tap do |x|
|
@@ -578,8 +657,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
578
657
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Equal)
|
579
658
|
expect(x.operands).to be_instance_of(Array)
|
580
659
|
expect(x.operands.count).to eq(2)
|
581
|
-
expect(x.operands[0]).to
|
582
|
-
expect(x.operands[
|
660
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
661
|
+
expect(x.operands[0].value).to eq("4")
|
662
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
663
|
+
expect(x.operands[1].value).to eq("2")
|
583
664
|
end
|
584
665
|
|
585
666
|
constants.find{|x| x.id == "notEqualExpression"}.expression.tap do |x|
|
@@ -587,8 +668,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
587
668
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::NotEqual)
|
588
669
|
expect(x.operands).to be_instance_of(Array)
|
589
670
|
expect(x.operands.count).to eq(2)
|
590
|
-
expect(x.operands[0]).to
|
591
|
-
expect(x.operands[
|
671
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
672
|
+
expect(x.operands[0].value).to eq("4")
|
673
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
674
|
+
expect(x.operands[1].value).to eq("2")
|
592
675
|
end
|
593
676
|
|
594
677
|
constants.find{|x| x.id == "ltExpression"}.expression.tap do |x|
|
@@ -596,8 +679,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
596
679
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::LessThan)
|
597
680
|
expect(x.operands).to be_instance_of(Array)
|
598
681
|
expect(x.operands.count).to eq(2)
|
599
|
-
expect(x.operands[0]).to
|
600
|
-
expect(x.operands[
|
682
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
683
|
+
expect(x.operands[0].value).to eq("4")
|
684
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
685
|
+
expect(x.operands[1].value).to eq("2")
|
601
686
|
end
|
602
687
|
|
603
688
|
constants.find{|x| x.id == "gtExpression"}.expression.tap do |x|
|
@@ -605,8 +690,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
605
690
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::GreaterThan)
|
606
691
|
expect(x.operands).to be_instance_of(Array)
|
607
692
|
expect(x.operands.count).to eq(2)
|
608
|
-
expect(x.operands[0]).to
|
609
|
-
expect(x.operands[
|
693
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
694
|
+
expect(x.operands[0].value).to eq("4")
|
695
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
696
|
+
expect(x.operands[1].value).to eq("2")
|
610
697
|
end
|
611
698
|
|
612
699
|
constants.find{|x| x.id == "lteExpression"}.expression.tap do |x|
|
@@ -614,8 +701,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
614
701
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
|
615
702
|
expect(x.operands).to be_instance_of(Array)
|
616
703
|
expect(x.operands.count).to eq(2)
|
617
|
-
expect(x.operands[0]).to
|
618
|
-
expect(x.operands[
|
704
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
705
|
+
expect(x.operands[0].value).to eq("4")
|
706
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
707
|
+
expect(x.operands[1].value).to eq("2")
|
619
708
|
end
|
620
709
|
|
621
710
|
constants.find{|x| x.id == "gteExpression"}.expression.tap do |x|
|
@@ -623,8 +712,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
623
712
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::GreaterThanOrEqual)
|
624
713
|
expect(x.operands).to be_instance_of(Array)
|
625
714
|
expect(x.operands.count).to eq(2)
|
626
|
-
expect(x.operands[0]).to
|
627
|
-
expect(x.operands[
|
715
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
716
|
+
expect(x.operands[0].value).to eq("4")
|
717
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
718
|
+
expect(x.operands[1].value).to eq("2")
|
628
719
|
end
|
629
720
|
|
630
721
|
constants.find{|x| x.id == "orExpression"}.expression.tap do |x|
|
@@ -632,8 +723,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
632
723
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Or)
|
633
724
|
expect(x.operands).to be_instance_of(Array)
|
634
725
|
expect(x.operands.count).to eq(2)
|
635
|
-
expect(x.operands[0]).to
|
636
|
-
expect(x.operands[
|
726
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
727
|
+
expect(x.operands[0].value).to eq(true)
|
728
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
729
|
+
expect(x.operands[1].value).to eq(false)
|
637
730
|
end
|
638
731
|
|
639
732
|
constants.find{|x| x.id == "andExpression"}.expression.tap do |x|
|
@@ -641,20 +734,27 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
641
734
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::And)
|
642
735
|
expect(x.operands).to be_instance_of(Array)
|
643
736
|
expect(x.operands.count).to eq(2)
|
644
|
-
expect(x.operands[0]).to
|
645
|
-
expect(x.operands[
|
737
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
738
|
+
expect(x.operands[0].value).to eq(true)
|
739
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
740
|
+
expect(x.operands[1].value).to eq(false)
|
646
741
|
end
|
647
742
|
|
648
743
|
constants.find{|x| x.id == "orOrExpression"}.expression.tap do |x|
|
649
744
|
expect(x).to be_instance_of(Expressir::Model::Expressions::Expression)
|
650
745
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Or)
|
746
|
+
expect(x.operands).to be_instance_of(Array)
|
747
|
+
expect(x.operands.count).to eq(2)
|
651
748
|
expect(x.operands[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
|
652
749
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Or)
|
653
750
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
654
751
|
expect(x.operands[0].operands.count).to eq(2)
|
655
|
-
expect(x.operands[0].operands[0]).to
|
656
|
-
expect(x.operands[0].operands[
|
657
|
-
expect(x.operands[1]).to
|
752
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
753
|
+
expect(x.operands[0].operands[0].value).to eq(true)
|
754
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
755
|
+
expect(x.operands[0].operands[1].value).to eq(false)
|
756
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
757
|
+
expect(x.operands[1].value).to eq(true)
|
658
758
|
end
|
659
759
|
|
660
760
|
constants.find{|x| x.id == "andAndExpression"}.expression.tap do |x|
|
@@ -666,9 +766,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
666
766
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::And)
|
667
767
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
668
768
|
expect(x.operands[0].operands.count).to eq(2)
|
669
|
-
expect(x.operands[0].operands[0]).to
|
670
|
-
expect(x.operands[0].operands[
|
671
|
-
expect(x.operands[1]).to
|
769
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
770
|
+
expect(x.operands[0].operands[0].value).to eq(true)
|
771
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
772
|
+
expect(x.operands[0].operands[1].value).to eq(false)
|
773
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
774
|
+
expect(x.operands[1].value).to eq(true)
|
672
775
|
end
|
673
776
|
|
674
777
|
constants.find{|x| x.id == "orAndExpression"}.expression.tap do |x|
|
@@ -676,13 +779,16 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
676
779
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Or)
|
677
780
|
expect(x.operands).to be_instance_of(Array)
|
678
781
|
expect(x.operands.count).to eq(2)
|
679
|
-
expect(x.operands[0]).to
|
782
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
783
|
+
expect(x.operands[0].value).to eq(true)
|
680
784
|
expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
|
681
785
|
expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::And)
|
682
786
|
expect(x.operands[1].operands).to be_instance_of(Array)
|
683
787
|
expect(x.operands[1].operands.count).to eq(2)
|
684
|
-
expect(x.operands[1].operands[0]).to
|
685
|
-
expect(x.operands[1].operands[
|
788
|
+
expect(x.operands[1].operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
789
|
+
expect(x.operands[1].operands[0].value).to eq(false)
|
790
|
+
expect(x.operands[1].operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
791
|
+
expect(x.operands[1].operands[1].value).to eq(true)
|
686
792
|
end
|
687
793
|
|
688
794
|
constants.find{|x| x.id == "andOrExpression"}.expression.tap do |x|
|
@@ -694,9 +800,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
694
800
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::And)
|
695
801
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
696
802
|
expect(x.operands[0].operands.count).to eq(2)
|
697
|
-
expect(x.operands[0].operands[0]).to
|
698
|
-
expect(x.operands[0].operands[
|
699
|
-
expect(x.operands[1]).to
|
803
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
804
|
+
expect(x.operands[0].operands[0].value).to eq(true)
|
805
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
806
|
+
expect(x.operands[0].operands[1].value).to eq(false)
|
807
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
808
|
+
expect(x.operands[1].value).to eq(true)
|
700
809
|
end
|
701
810
|
|
702
811
|
constants.find{|x| x.id == "parenthesisOrAndExpression"}.expression.tap do |x|
|
@@ -708,9 +817,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
708
817
|
expect(x.operands[0].operator).to be_instance_of(Expressir::Model::Operators::Or)
|
709
818
|
expect(x.operands[0].operands).to be_instance_of(Array)
|
710
819
|
expect(x.operands[0].operands.count).to eq(2)
|
711
|
-
expect(x.operands[0].operands[0]).to
|
712
|
-
expect(x.operands[0].operands[
|
713
|
-
expect(x.operands[1]).to
|
820
|
+
expect(x.operands[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
821
|
+
expect(x.operands[0].operands[0].value).to eq(true)
|
822
|
+
expect(x.operands[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
823
|
+
expect(x.operands[0].operands[1].value).to eq(false)
|
824
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
825
|
+
expect(x.operands[1].value).to eq(true)
|
714
826
|
end
|
715
827
|
|
716
828
|
constants.find{|x| x.id == "andParenthesisOrExpression"}.expression.tap do |x|
|
@@ -718,57 +830,73 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
718
830
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::And)
|
719
831
|
expect(x.operands).to be_instance_of(Array)
|
720
832
|
expect(x.operands.count).to eq(2)
|
721
|
-
expect(x.operands[0]).to
|
833
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
834
|
+
expect(x.operands[0].value).to eq(true)
|
722
835
|
expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::Expression)
|
723
836
|
expect(x.operands[1].operator).to be_instance_of(Expressir::Model::Operators::Or)
|
724
837
|
expect(x.operands[1].operands).to be_instance_of(Array)
|
725
838
|
expect(x.operands[1].operands.count).to eq(2)
|
726
|
-
expect(x.operands[1].operands[0]).to
|
727
|
-
expect(x.operands[1].operands[
|
839
|
+
expect(x.operands[1].operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
840
|
+
expect(x.operands[1].operands[0].value).to eq(false)
|
841
|
+
expect(x.operands[1].operands[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
842
|
+
expect(x.operands[1].operands[1].value).to eq(true)
|
728
843
|
end
|
729
844
|
|
730
845
|
# aggregate initializers
|
731
|
-
constants.find{|x| x.id == "
|
732
|
-
expect(x).to be_instance_of(
|
733
|
-
expect(x.
|
734
|
-
expect(x
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
expect(x
|
741
|
-
expect(x
|
742
|
-
expect(x
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
expect(x).to be_instance_of(
|
747
|
-
expect(x.
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
expect(x
|
752
|
-
expect(x
|
753
|
-
expect(x
|
754
|
-
|
755
|
-
|
756
|
-
|
757
|
-
expect(x).to
|
758
|
-
expect(x.
|
759
|
-
expect(x[0]).to
|
760
|
-
expect(x[0].
|
761
|
-
expect(x[0].
|
762
|
-
|
763
|
-
|
764
|
-
|
765
|
-
expect(x
|
766
|
-
expect(x
|
767
|
-
expect(x
|
768
|
-
expect(x[0]
|
769
|
-
expect(x[0].
|
770
|
-
expect(x[0].
|
771
|
-
expect(x[0].
|
846
|
+
constants.find{|x| x.id == "aggregateInitializerExpression"}.expression.tap do |x|
|
847
|
+
expect(x).to be_instance_of(Expressir::Model::Expressions::AggregateInitializer)
|
848
|
+
expect(x.items).to be_instance_of(Array)
|
849
|
+
expect(x.items.count).to eq(1)
|
850
|
+
expect(x.items[0]).to be_instance_of(Expressir::Model::Literals::String)
|
851
|
+
expect(x.items[0].value).to eq("xxx")
|
852
|
+
end
|
853
|
+
|
854
|
+
constants.find{|x| x.id == "repeatedAggregateInitializerExpression"}.expression.tap do |x|
|
855
|
+
expect(x).to be_instance_of(Expressir::Model::Expressions::AggregateInitializer)
|
856
|
+
expect(x.items).to be_instance_of(Array)
|
857
|
+
expect(x.items.count).to eq(1)
|
858
|
+
expect(x.items[0]).to be_instance_of(Expressir::Model::Expressions::AggregateElement)
|
859
|
+
expect(x.items[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
860
|
+
expect(x.items[0].expression.value).to eq("xxx")
|
861
|
+
expect(x.items[0].repetition).to be_instance_of(Expressir::Model::Literals::Integer)
|
862
|
+
expect(x.items[0].repetition.value).to eq("2")
|
863
|
+
end
|
864
|
+
|
865
|
+
constants.find{|x| x.id == "complexAggregateInitializerExpression"}.expression.tap do |x|
|
866
|
+
expect(x).to be_instance_of(Expressir::Model::Expressions::AggregateInitializer)
|
867
|
+
expect(x.items).to be_instance_of(Array)
|
868
|
+
expect(x.items.count).to eq(1)
|
869
|
+
expect(x.items[0]).to be_instance_of(Expressir::Model::Expressions::Expression)
|
870
|
+
expect(x.items[0].operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
871
|
+
expect(x.items[0].operands).to be_instance_of(Array)
|
872
|
+
expect(x.items[0].operands.count).to eq(2)
|
873
|
+
expect(x.items[0].operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
874
|
+
expect(x.items[0].operands[0].value).to eq("4")
|
875
|
+
expect(x.items[0].operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
876
|
+
expect(x.items[0].operands[1].value).to eq("2")
|
877
|
+
end
|
878
|
+
|
879
|
+
constants.find{|x| x.id == "complexRepeatedAggregateInitializerExpression"}.expression.tap do |x|
|
880
|
+
expect(x).to be_instance_of(Expressir::Model::Expressions::AggregateInitializer)
|
881
|
+
expect(x.items).to be_instance_of(Array)
|
882
|
+
expect(x.items.count).to eq(1)
|
883
|
+
expect(x.items[0]).to be_instance_of(Expressir::Model::Expressions::AggregateElement)
|
884
|
+
expect(x.items[0].expression).to be_instance_of(Expressir::Model::Expressions::Expression)
|
885
|
+
expect(x.items[0].expression.operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
886
|
+
expect(x.items[0].expression.operands).to be_instance_of(Array)
|
887
|
+
expect(x.items[0].expression.operands.count).to eq(2)
|
888
|
+
expect(x.items[0].expression.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
889
|
+
expect(x.items[0].expression.operands[0].value).to eq("4")
|
890
|
+
expect(x.items[0].expression.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
891
|
+
expect(x.items[0].expression.operands[1].value).to eq("2")
|
892
|
+
expect(x.items[0].repetition).to be_instance_of(Expressir::Model::Expressions::Expression)
|
893
|
+
expect(x.items[0].repetition.operator).to be_instance_of(Expressir::Model::Operators::Addition)
|
894
|
+
expect(x.items[0].repetition.operands).to be_instance_of(Array)
|
895
|
+
expect(x.items[0].repetition.operands.count).to eq(2)
|
896
|
+
expect(x.items[0].repetition.operands[0]).to be_instance_of(Expressir::Model::Literals::Integer)
|
897
|
+
expect(x.items[0].repetition.operands[0].value).to eq("4")
|
898
|
+
expect(x.items[0].repetition.operands[1]).to be_instance_of(Expressir::Model::Literals::Integer)
|
899
|
+
expect(x.items[0].repetition.operands[1].value).to eq("2")
|
772
900
|
end
|
773
901
|
|
774
902
|
# entity constructors
|
@@ -778,7 +906,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
778
906
|
expect(x.entity.id).to eq("explicitAttributeEntity")
|
779
907
|
expect(x.parameters).to be_instance_of(Array)
|
780
908
|
expect(x.parameters.count).to eq(1)
|
781
|
-
expect(x.parameters[0]).to
|
909
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
910
|
+
expect(x.parameters[0].value).to eq(true)
|
782
911
|
end
|
783
912
|
|
784
913
|
# enumeration references
|
@@ -801,38 +930,50 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
801
930
|
# intervals
|
802
931
|
constants.find{|x| x.id == "ltLtIntervalExpression"}.expression.tap do |x|
|
803
932
|
expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
|
804
|
-
expect(x.low).to
|
933
|
+
expect(x.low).to be_instance_of(Expressir::Model::Literals::Integer)
|
934
|
+
expect(x.low.value).to eq("1")
|
805
935
|
expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThan)
|
806
|
-
expect(x.item).to
|
936
|
+
expect(x.item).to be_instance_of(Expressir::Model::Literals::Integer)
|
937
|
+
expect(x.item.value).to eq("5")
|
807
938
|
expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThan)
|
808
|
-
expect(x.high).to
|
939
|
+
expect(x.high).to be_instance_of(Expressir::Model::Literals::Integer)
|
940
|
+
expect(x.high.value).to eq("9")
|
809
941
|
end
|
810
942
|
|
811
943
|
constants.find{|x| x.id == "lteLtIntervalExpression"}.expression.tap do |x|
|
812
944
|
expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
|
813
|
-
expect(x.low).to
|
945
|
+
expect(x.low).to be_instance_of(Expressir::Model::Literals::Integer)
|
946
|
+
expect(x.low.value).to eq("1")
|
814
947
|
expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
|
815
|
-
expect(x.item).to
|
948
|
+
expect(x.item).to be_instance_of(Expressir::Model::Literals::Integer)
|
949
|
+
expect(x.item.value).to eq("5")
|
816
950
|
expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThan)
|
817
|
-
expect(x.high).to
|
951
|
+
expect(x.high).to be_instance_of(Expressir::Model::Literals::Integer)
|
952
|
+
expect(x.high.value).to eq("9")
|
818
953
|
end
|
819
954
|
|
820
955
|
constants.find{|x| x.id == "ltLteIntervalExpression"}.expression.tap do |x|
|
821
956
|
expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
|
822
|
-
expect(x.low).to
|
957
|
+
expect(x.low).to be_instance_of(Expressir::Model::Literals::Integer)
|
958
|
+
expect(x.low.value).to eq("1")
|
823
959
|
expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThan)
|
824
|
-
expect(x.item).to
|
960
|
+
expect(x.item).to be_instance_of(Expressir::Model::Literals::Integer)
|
961
|
+
expect(x.item.value).to eq("5")
|
825
962
|
expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
|
826
|
-
expect(x.high).to
|
963
|
+
expect(x.high).to be_instance_of(Expressir::Model::Literals::Integer)
|
964
|
+
expect(x.high.value).to eq("9")
|
827
965
|
end
|
828
966
|
|
829
967
|
constants.find{|x| x.id == "lteLteIntervalExpression"}.expression.tap do |x|
|
830
968
|
expect(x).to be_instance_of(Expressir::Model::Expressions::Interval)
|
831
|
-
expect(x.low).to
|
969
|
+
expect(x.low).to be_instance_of(Expressir::Model::Literals::Integer)
|
970
|
+
expect(x.low.value).to eq("1")
|
832
971
|
expect(x.operator1).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
|
833
|
-
expect(x.item).to
|
972
|
+
expect(x.item).to be_instance_of(Expressir::Model::Literals::Integer)
|
973
|
+
expect(x.item.value).to eq("5")
|
834
974
|
expect(x.operator2).to be_instance_of(Expressir::Model::Operators::LessThanOrEqual)
|
835
|
-
expect(x.high).to
|
975
|
+
expect(x.high).to be_instance_of(Expressir::Model::Literals::Integer)
|
976
|
+
expect(x.high.value).to eq("9")
|
836
977
|
end
|
837
978
|
|
838
979
|
constants.find{|x| x.id == "combineExpression"}.expression.tap do |x|
|
@@ -851,10 +992,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
851
992
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::In)
|
852
993
|
expect(x.operands).to be_instance_of(Array)
|
853
994
|
expect(x.operands.count).to eq(2)
|
854
|
-
expect(x.operands[0]).to
|
855
|
-
expect(x.operands[
|
856
|
-
expect(x.operands[1]
|
857
|
-
expect(x.operands[1]
|
995
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
996
|
+
expect(x.operands[0].value).to eq(true)
|
997
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Expressions::AggregateInitializer)
|
998
|
+
expect(x.operands[1].items).to be_instance_of(Array)
|
999
|
+
expect(x.operands[1].items.count).to eq(1)
|
1000
|
+
expect(x.operands[1].items[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
1001
|
+
expect(x.operands[1].items[0].value).to eq(true)
|
858
1002
|
end
|
859
1003
|
|
860
1004
|
constants.find{|x| x.id == "likeExpression"}.expression.tap do |x|
|
@@ -862,8 +1006,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
862
1006
|
expect(x.operator).to be_instance_of(Expressir::Model::Operators::Like)
|
863
1007
|
expect(x.operands).to be_instance_of(Array)
|
864
1008
|
expect(x.operands.count).to eq(2)
|
865
|
-
expect(x.operands[0]).to
|
866
|
-
expect(x.operands[
|
1009
|
+
expect(x.operands[0]).to be_instance_of(Expressir::Model::Literals::String)
|
1010
|
+
expect(x.operands[0].value).to eq("xxx")
|
1011
|
+
expect(x.operands[1]).to be_instance_of(Expressir::Model::Literals::String)
|
1012
|
+
expect(x.operands[1].value).to eq("xxx")
|
867
1013
|
end
|
868
1014
|
|
869
1015
|
# queries
|
@@ -872,7 +1018,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
872
1018
|
expect(x.id).to eq("test")
|
873
1019
|
expect(x.source).to be_instance_of(Expressir::Model::Ref)
|
874
1020
|
expect(x.source.id).to eq("test2")
|
875
|
-
expect(x.expression).to
|
1021
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1022
|
+
expect(x.expression.value).to eq(true)
|
876
1023
|
end
|
877
1024
|
|
878
1025
|
# types
|
@@ -887,7 +1034,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
887
1034
|
expect(x.where).to be_instance_of(Array)
|
888
1035
|
expect(x.where.count).to eq(1)
|
889
1036
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
890
|
-
expect(x.where[0].expression).to
|
1037
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1038
|
+
expect(x.where[0].expression.value).to eq(true)
|
891
1039
|
end
|
892
1040
|
|
893
1041
|
types.find{|x| x.id == "integerWhereLabelType"}.tap do |x|
|
@@ -897,7 +1045,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
897
1045
|
expect(x.where.count).to eq(1)
|
898
1046
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
899
1047
|
expect(x.where[0].id).to eq("WR1")
|
900
|
-
expect(x.where[0].expression).to
|
1048
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1049
|
+
expect(x.where[0].expression.value).to eq(true)
|
901
1050
|
end
|
902
1051
|
|
903
1052
|
# simple types
|
@@ -907,12 +1056,14 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
907
1056
|
|
908
1057
|
types.find{|x| x.id == "binaryWidthType"}.type.tap do |x|
|
909
1058
|
expect(x).to be_instance_of(Expressir::Model::Types::Binary)
|
910
|
-
expect(x.width).to
|
1059
|
+
expect(x.width).to be_instance_of(Expressir::Model::Literals::Integer)
|
1060
|
+
expect(x.width.value).to eq("3")
|
911
1061
|
end
|
912
1062
|
|
913
1063
|
types.find{|x| x.id == "binaryWidthFixedType"}.type.tap do |x|
|
914
1064
|
expect(x).to be_instance_of(Expressir::Model::Types::Binary)
|
915
|
-
expect(x.width).to
|
1065
|
+
expect(x.width).to be_instance_of(Expressir::Model::Literals::Integer)
|
1066
|
+
expect(x.width.value).to eq("3")
|
916
1067
|
expect(x.fixed).to eq(true)
|
917
1068
|
end
|
918
1069
|
|
@@ -938,7 +1089,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
938
1089
|
|
939
1090
|
types.find{|x| x.id == "realPrecisionType"}.type.tap do |x|
|
940
1091
|
expect(x).to be_instance_of(Expressir::Model::Types::Real)
|
941
|
-
expect(x.precision).to
|
1092
|
+
expect(x.precision).to be_instance_of(Expressir::Model::Literals::Integer)
|
1093
|
+
expect(x.precision.value).to eq("3")
|
942
1094
|
end
|
943
1095
|
|
944
1096
|
types.find{|x| x.id == "stringType"}.type.tap do |x|
|
@@ -947,43 +1099,53 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
947
1099
|
|
948
1100
|
types.find{|x| x.id == "stringWidthType"}.type.tap do |x|
|
949
1101
|
expect(x).to be_instance_of(Expressir::Model::Types::String)
|
950
|
-
expect(x.width).to
|
1102
|
+
expect(x.width).to be_instance_of(Expressir::Model::Literals::Integer)
|
1103
|
+
expect(x.width.value).to eq("3")
|
951
1104
|
end
|
952
1105
|
|
953
1106
|
types.find{|x| x.id == "stringWidthFixedType"}.type.tap do |x|
|
954
1107
|
expect(x).to be_instance_of(Expressir::Model::Types::String)
|
955
|
-
expect(x.width).to
|
1108
|
+
expect(x.width).to be_instance_of(Expressir::Model::Literals::Integer)
|
1109
|
+
expect(x.width.value).to eq("3")
|
956
1110
|
expect(x.fixed).to eq(true)
|
957
1111
|
end
|
958
1112
|
|
959
1113
|
# aggregation types
|
960
1114
|
types.find{|x| x.id == "arrayType"}.type.tap do |x|
|
961
1115
|
expect(x).to be_instance_of(Expressir::Model::Types::Array)
|
962
|
-
expect(x.bound1).to
|
963
|
-
expect(x.
|
1116
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1117
|
+
expect(x.bound1.value).to eq("1")
|
1118
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1119
|
+
expect(x.bound2.value).to eq("9")
|
964
1120
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
965
1121
|
end
|
966
1122
|
|
967
1123
|
types.find{|x| x.id == "arrayOptionalType"}.type.tap do |x|
|
968
1124
|
expect(x).to be_instance_of(Expressir::Model::Types::Array)
|
969
|
-
expect(x.bound1).to
|
970
|
-
expect(x.
|
1125
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1126
|
+
expect(x.bound1.value).to eq("1")
|
1127
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1128
|
+
expect(x.bound2.value).to eq("9")
|
971
1129
|
expect(x.optional).to eq(true)
|
972
1130
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
973
1131
|
end
|
974
1132
|
|
975
1133
|
types.find{|x| x.id == "arrayUniqueType"}.type.tap do |x|
|
976
1134
|
expect(x).to be_instance_of(Expressir::Model::Types::Array)
|
977
|
-
expect(x.bound1).to
|
978
|
-
expect(x.
|
1135
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1136
|
+
expect(x.bound1.value).to eq("1")
|
1137
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1138
|
+
expect(x.bound2.value).to eq("9")
|
979
1139
|
expect(x.unique).to eq(true)
|
980
1140
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
981
1141
|
end
|
982
1142
|
|
983
1143
|
types.find{|x| x.id == "arrayOptionalUniqueType"}.type.tap do |x|
|
984
1144
|
expect(x).to be_instance_of(Expressir::Model::Types::Array)
|
985
|
-
expect(x.bound1).to
|
986
|
-
expect(x.
|
1145
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1146
|
+
expect(x.bound1.value).to eq("1")
|
1147
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1148
|
+
expect(x.bound2.value).to eq("9")
|
987
1149
|
expect(x.optional).to eq(true)
|
988
1150
|
expect(x.unique).to eq(true)
|
989
1151
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
@@ -996,8 +1158,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
996
1158
|
|
997
1159
|
types.find{|x| x.id == "bagBoundType"}.type.tap do |x|
|
998
1160
|
expect(x).to be_instance_of(Expressir::Model::Types::Bag)
|
999
|
-
expect(x.bound1).to
|
1000
|
-
expect(x.
|
1161
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1162
|
+
expect(x.bound1.value).to eq("1")
|
1163
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1164
|
+
expect(x.bound2.value).to eq("9")
|
1001
1165
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
1002
1166
|
end
|
1003
1167
|
|
@@ -1008,8 +1172,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1008
1172
|
|
1009
1173
|
types.find{|x| x.id == "listBoundType"}.type.tap do |x|
|
1010
1174
|
expect(x).to be_instance_of(Expressir::Model::Types::List)
|
1011
|
-
expect(x.bound1).to
|
1012
|
-
expect(x.
|
1175
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1176
|
+
expect(x.bound1.value).to eq("1")
|
1177
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1178
|
+
expect(x.bound2.value).to eq("9")
|
1013
1179
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
1014
1180
|
end
|
1015
1181
|
|
@@ -1021,8 +1187,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1021
1187
|
|
1022
1188
|
types.find{|x| x.id == "listBoundUniqueType"}.type.tap do |x|
|
1023
1189
|
expect(x).to be_instance_of(Expressir::Model::Types::List)
|
1024
|
-
expect(x.bound1).to
|
1025
|
-
expect(x.
|
1190
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1191
|
+
expect(x.bound1.value).to eq("1")
|
1192
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1193
|
+
expect(x.bound2.value).to eq("9")
|
1026
1194
|
expect(x.unique).to eq(true)
|
1027
1195
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
1028
1196
|
end
|
@@ -1034,8 +1202,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1034
1202
|
|
1035
1203
|
types.find{|x| x.id == "setBoundType"}.type.tap do |x|
|
1036
1204
|
expect(x).to be_instance_of(Expressir::Model::Types::Set)
|
1037
|
-
expect(x.bound1).to
|
1038
|
-
expect(x.
|
1205
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1206
|
+
expect(x.bound1.value).to eq("1")
|
1207
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1208
|
+
expect(x.bound2.value).to eq("9")
|
1039
1209
|
expect(x.base_type).to be_instance_of(Expressir::Model::Types::String)
|
1040
1210
|
end
|
1041
1211
|
|
@@ -1057,10 +1227,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1057
1227
|
|
1058
1228
|
types.find{|x| x.id == "selectListType"}.type.tap do |x|
|
1059
1229
|
expect(x).to be_instance_of(Expressir::Model::Types::Select)
|
1060
|
-
expect(x.
|
1061
|
-
expect(x.
|
1062
|
-
expect(x.
|
1063
|
-
expect(x.
|
1230
|
+
expect(x.items).to be_instance_of(Array)
|
1231
|
+
expect(x.items.count).to eq(1)
|
1232
|
+
expect(x.items[0]).to be_instance_of(Expressir::Model::Ref)
|
1233
|
+
expect(x.items[0].id).to eq("test")
|
1064
1234
|
end
|
1065
1235
|
|
1066
1236
|
types.find{|x| x.id == "selectExtensionTypeRefType"}.type.tap do |x|
|
@@ -1073,10 +1243,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1073
1243
|
expect(x).to be_instance_of(Expressir::Model::Types::Select)
|
1074
1244
|
expect(x.extension_type).to be_instance_of(Expressir::Model::Ref)
|
1075
1245
|
expect(x.extension_type.id).to eq("selectType")
|
1076
|
-
expect(x.
|
1077
|
-
expect(x.
|
1078
|
-
expect(x.
|
1079
|
-
expect(x.
|
1246
|
+
expect(x.extension_items).to be_instance_of(Array)
|
1247
|
+
expect(x.extension_items.count).to eq(1)
|
1248
|
+
expect(x.extension_items[0]).to be_instance_of(Expressir::Model::Ref)
|
1249
|
+
expect(x.extension_items[0].id).to eq("test")
|
1080
1250
|
end
|
1081
1251
|
|
1082
1252
|
types.find{|x| x.id == "enumerationType"}.type.tap do |x|
|
@@ -1090,9 +1260,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1090
1260
|
|
1091
1261
|
types.find{|x| x.id == "enumerationListType"}.type.tap do |x|
|
1092
1262
|
expect(x).to be_instance_of(Expressir::Model::Types::Enumeration)
|
1093
|
-
expect(x.
|
1094
|
-
expect(x.
|
1095
|
-
expect(x.
|
1263
|
+
expect(x.items).to be_instance_of(Array)
|
1264
|
+
expect(x.items.count).to eq(1)
|
1265
|
+
expect(x.items[0]).to be_instance_of(Expressir::Model::EnumerationItem)
|
1266
|
+
expect(x.items[0].id).to eq("test")
|
1096
1267
|
end
|
1097
1268
|
|
1098
1269
|
types.find{|x| x.id == "enumerationExtensionTypeRefType"}.type.tap do |x|
|
@@ -1105,9 +1276,9 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1105
1276
|
expect(x).to be_instance_of(Expressir::Model::Types::Enumeration)
|
1106
1277
|
expect(x.extension_type).to be_instance_of(Expressir::Model::Ref)
|
1107
1278
|
expect(x.extension_type.id).to eq("enumerationType")
|
1108
|
-
expect(x.
|
1109
|
-
expect(x.
|
1110
|
-
expect(x.
|
1279
|
+
expect(x.extension_items).to be_instance_of(Array)
|
1280
|
+
expect(x.extension_items[0]).to be_instance_of(Expressir::Model::EnumerationItem)
|
1281
|
+
expect(x.extension_items[0].id).to eq("test")
|
1111
1282
|
end
|
1112
1283
|
|
1113
1284
|
# entities
|
@@ -1199,24 +1370,42 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1199
1370
|
expect(x.explicit[1].type).to be_instance_of(Expressir::Model::Types::Boolean)
|
1200
1371
|
end
|
1201
1372
|
|
1202
|
-
entities.find{|x| x.id == "
|
1373
|
+
entities.find{|x| x.id == "explicitAttributeRedeclaredEntity"}.tap do |x|
|
1374
|
+
expect(x).to be_instance_of(Expressir::Model::Entity)
|
1375
|
+
expect(x.explicit).to be_instance_of(Array)
|
1376
|
+
expect(x.explicit.count).to eq(1)
|
1377
|
+
expect(x.explicit[0]).to be_instance_of(Expressir::Model::Explicit)
|
1378
|
+
expect(x.explicit[0].supertype_attribute).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
|
1379
|
+
expect(x.explicit[0].supertype_attribute.ref).to be_instance_of(Expressir::Model::Ref)
|
1380
|
+
expect(x.explicit[0].supertype_attribute.ref.id).to eq("SELF")
|
1381
|
+
expect(x.explicit[0].supertype_attribute.qualifiers).to be_instance_of(Array)
|
1382
|
+
expect(x.explicit[0].supertype_attribute.qualifiers.count).to eq(2)
|
1383
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
|
1384
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
|
1385
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[0].entity.id).to eq("explicitAttributeEntity")
|
1386
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
|
1387
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
|
1388
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[1].attribute.id).to eq("test")
|
1389
|
+
expect(x.explicit[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
|
1390
|
+
end
|
1391
|
+
|
1392
|
+
entities.find{|x| x.id == "explicitAttributeRedeclaredRenamedEntity"}.tap do |x|
|
1203
1393
|
expect(x).to be_instance_of(Expressir::Model::Entity)
|
1204
1394
|
expect(x.explicit).to be_instance_of(Array)
|
1205
1395
|
expect(x.explicit.count).to eq(1)
|
1206
1396
|
expect(x.explicit[0]).to be_instance_of(Expressir::Model::Explicit)
|
1207
|
-
expect(x.explicit[0].id).to
|
1208
|
-
expect(x.explicit[0].
|
1209
|
-
expect(x.explicit[0].
|
1210
|
-
expect(x.explicit[0].
|
1211
|
-
expect(x.explicit[0].
|
1212
|
-
expect(x.explicit[0].
|
1213
|
-
expect(x.explicit[0].
|
1214
|
-
expect(x.explicit[0].
|
1215
|
-
expect(x.explicit[0].
|
1216
|
-
expect(x.explicit[0].
|
1217
|
-
expect(x.explicit[0].
|
1218
|
-
expect(x.explicit[0].
|
1219
|
-
expect(x.explicit[0].id.id).to eq("test2")
|
1397
|
+
expect(x.explicit[0].id).to eq("test2")
|
1398
|
+
expect(x.explicit[0].supertype_attribute).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
|
1399
|
+
expect(x.explicit[0].supertype_attribute.ref).to be_instance_of(Expressir::Model::Ref)
|
1400
|
+
expect(x.explicit[0].supertype_attribute.ref.id).to eq("SELF")
|
1401
|
+
expect(x.explicit[0].supertype_attribute.qualifiers).to be_instance_of(Array)
|
1402
|
+
expect(x.explicit[0].supertype_attribute.qualifiers.count).to eq(2)
|
1403
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
|
1404
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
|
1405
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[0].entity.id).to eq("explicitAttributeEntity")
|
1406
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
|
1407
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
|
1408
|
+
expect(x.explicit[0].supertype_attribute.qualifiers[1].attribute.id).to eq("test")
|
1220
1409
|
expect(x.explicit[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
|
1221
1410
|
end
|
1222
1411
|
|
@@ -1227,7 +1416,51 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1227
1416
|
expect(x.derived[0]).to be_instance_of(Expressir::Model::Derived)
|
1228
1417
|
expect(x.derived[0].id).to eq("test")
|
1229
1418
|
expect(x.derived[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
|
1230
|
-
expect(x.derived[0].expression).to
|
1419
|
+
expect(x.derived[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1420
|
+
expect(x.derived[0].expression.value).to eq(true)
|
1421
|
+
end
|
1422
|
+
|
1423
|
+
entities.find{|x| x.id == "derivedAttributeRedeclaredEntity"}.tap do |x|
|
1424
|
+
expect(x).to be_instance_of(Expressir::Model::Entity)
|
1425
|
+
expect(x.derived).to be_instance_of(Array)
|
1426
|
+
expect(x.derived.count).to eq(1)
|
1427
|
+
expect(x.derived[0]).to be_instance_of(Expressir::Model::Derived)
|
1428
|
+
expect(x.derived[0].supertype_attribute).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
|
1429
|
+
expect(x.derived[0].supertype_attribute.ref).to be_instance_of(Expressir::Model::Ref)
|
1430
|
+
expect(x.derived[0].supertype_attribute.ref.id).to eq("SELF")
|
1431
|
+
expect(x.derived[0].supertype_attribute.qualifiers).to be_instance_of(Array)
|
1432
|
+
expect(x.derived[0].supertype_attribute.qualifiers.count).to eq(2)
|
1433
|
+
expect(x.derived[0].supertype_attribute.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
|
1434
|
+
expect(x.derived[0].supertype_attribute.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
|
1435
|
+
expect(x.derived[0].supertype_attribute.qualifiers[0].entity.id).to eq("explicitAttributeEntity")
|
1436
|
+
expect(x.derived[0].supertype_attribute.qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
|
1437
|
+
expect(x.derived[0].supertype_attribute.qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
|
1438
|
+
expect(x.derived[0].supertype_attribute.qualifiers[1].attribute.id).to eq("test")
|
1439
|
+
expect(x.derived[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
|
1440
|
+
expect(x.derived[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1441
|
+
expect(x.derived[0].expression.value).to eq(true)
|
1442
|
+
end
|
1443
|
+
|
1444
|
+
entities.find{|x| x.id == "derivedAttributeRedeclaredRenamedEntity"}.tap do |x|
|
1445
|
+
expect(x).to be_instance_of(Expressir::Model::Entity)
|
1446
|
+
expect(x.derived).to be_instance_of(Array)
|
1447
|
+
expect(x.derived.count).to eq(1)
|
1448
|
+
expect(x.derived[0]).to be_instance_of(Expressir::Model::Derived)
|
1449
|
+
expect(x.derived[0].id).to eq("test2")
|
1450
|
+
expect(x.derived[0].supertype_attribute).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
|
1451
|
+
expect(x.derived[0].supertype_attribute.ref).to be_instance_of(Expressir::Model::Ref)
|
1452
|
+
expect(x.derived[0].supertype_attribute.ref.id).to eq("SELF")
|
1453
|
+
expect(x.derived[0].supertype_attribute.qualifiers).to be_instance_of(Array)
|
1454
|
+
expect(x.derived[0].supertype_attribute.qualifiers.count).to eq(2)
|
1455
|
+
expect(x.derived[0].supertype_attribute.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
|
1456
|
+
expect(x.derived[0].supertype_attribute.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
|
1457
|
+
expect(x.derived[0].supertype_attribute.qualifiers[0].entity.id).to eq("explicitAttributeEntity")
|
1458
|
+
expect(x.derived[0].supertype_attribute.qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
|
1459
|
+
expect(x.derived[0].supertype_attribute.qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
|
1460
|
+
expect(x.derived[0].supertype_attribute.qualifiers[1].attribute.id).to eq("test")
|
1461
|
+
expect(x.derived[0].type).to be_instance_of(Expressir::Model::Types::Boolean)
|
1462
|
+
expect(x.derived[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1463
|
+
expect(x.derived[0].expression.value).to eq(true)
|
1231
1464
|
end
|
1232
1465
|
|
1233
1466
|
entities.find{|x| x.id == "inverseAttributeEntity"}.tap do |x|
|
@@ -1280,8 +1513,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1280
1513
|
expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
|
1281
1514
|
expect(x.inverse[0].id).to eq("test")
|
1282
1515
|
expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Types::Set)
|
1283
|
-
expect(x.inverse[0].type.bound1).to
|
1284
|
-
expect(x.inverse[0].type.
|
1516
|
+
expect(x.inverse[0].type.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1517
|
+
expect(x.inverse[0].type.bound1.value).to eq("1")
|
1518
|
+
expect(x.inverse[0].type.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1519
|
+
expect(x.inverse[0].type.bound2.value).to eq("9")
|
1285
1520
|
expect(x.inverse[0].type.base_type).to be_instance_of(Expressir::Model::Ref)
|
1286
1521
|
expect(x.inverse[0].type.base_type.id).to eq("explicitAttributeEntity")
|
1287
1522
|
expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
|
@@ -1308,14 +1543,61 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1308
1543
|
expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
|
1309
1544
|
expect(x.inverse[0].id).to eq("test")
|
1310
1545
|
expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Types::Bag)
|
1311
|
-
expect(x.inverse[0].type.bound1).to
|
1312
|
-
expect(x.inverse[0].type.
|
1546
|
+
expect(x.inverse[0].type.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
1547
|
+
expect(x.inverse[0].type.bound1.value).to eq("1")
|
1548
|
+
expect(x.inverse[0].type.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
1549
|
+
expect(x.inverse[0].type.bound2.value).to eq("9")
|
1313
1550
|
expect(x.inverse[0].type.base_type).to be_instance_of(Expressir::Model::Ref)
|
1314
1551
|
expect(x.inverse[0].type.base_type.id).to eq("explicitAttributeEntity")
|
1315
1552
|
expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
|
1316
1553
|
expect(x.inverse[0].attribute.id).to eq("test")
|
1317
1554
|
end
|
1318
1555
|
|
1556
|
+
entities.find{|x| x.id == "inverseAttributeRedeclaredEntity"}.tap do |x|
|
1557
|
+
expect(x).to be_instance_of(Expressir::Model::Entity)
|
1558
|
+
expect(x.inverse).to be_instance_of(Array)
|
1559
|
+
expect(x.inverse.count).to eq(1)
|
1560
|
+
expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
|
1561
|
+
expect(x.inverse[0].supertype_attribute).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
|
1562
|
+
expect(x.inverse[0].supertype_attribute.ref).to be_instance_of(Expressir::Model::Ref)
|
1563
|
+
expect(x.inverse[0].supertype_attribute.ref.id).to eq("SELF")
|
1564
|
+
expect(x.inverse[0].supertype_attribute.qualifiers).to be_instance_of(Array)
|
1565
|
+
expect(x.inverse[0].supertype_attribute.qualifiers.count).to eq(2)
|
1566
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
|
1567
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
|
1568
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[0].entity.id).to eq("explicitAttributeEntity")
|
1569
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
|
1570
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
|
1571
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[1].attribute.id).to eq("test")
|
1572
|
+
expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Ref)
|
1573
|
+
expect(x.inverse[0].type.id).to eq("explicitAttributeEntity")
|
1574
|
+
expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
|
1575
|
+
expect(x.inverse[0].attribute.id).to eq("test")
|
1576
|
+
end
|
1577
|
+
|
1578
|
+
entities.find{|x| x.id == "inverseAttributeRedeclaredRenamedEntity"}.tap do |x|
|
1579
|
+
expect(x).to be_instance_of(Expressir::Model::Entity)
|
1580
|
+
expect(x.inverse).to be_instance_of(Array)
|
1581
|
+
expect(x.inverse.count).to eq(1)
|
1582
|
+
expect(x.inverse[0]).to be_instance_of(Expressir::Model::Inverse)
|
1583
|
+
expect(x.inverse[0].id).to eq("test2")
|
1584
|
+
expect(x.inverse[0].supertype_attribute).to be_instance_of(Expressir::Model::Expressions::QualifiedRef)
|
1585
|
+
expect(x.inverse[0].supertype_attribute.ref).to be_instance_of(Expressir::Model::Ref)
|
1586
|
+
expect(x.inverse[0].supertype_attribute.ref.id).to eq("SELF")
|
1587
|
+
expect(x.inverse[0].supertype_attribute.qualifiers).to be_instance_of(Array)
|
1588
|
+
expect(x.inverse[0].supertype_attribute.qualifiers.count).to eq(2)
|
1589
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
|
1590
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
|
1591
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[0].entity.id).to eq("explicitAttributeEntity")
|
1592
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[1]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
|
1593
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[1].attribute).to be_instance_of(Expressir::Model::Ref)
|
1594
|
+
expect(x.inverse[0].supertype_attribute.qualifiers[1].attribute.id).to eq("test")
|
1595
|
+
expect(x.inverse[0].type).to be_instance_of(Expressir::Model::Ref)
|
1596
|
+
expect(x.inverse[0].type.id).to eq("explicitAttributeEntity")
|
1597
|
+
expect(x.inverse[0].attribute).to be_instance_of(Expressir::Model::Ref)
|
1598
|
+
expect(x.inverse[0].attribute.id).to eq("test")
|
1599
|
+
end
|
1600
|
+
|
1319
1601
|
entities.find{|x| x.id == "uniqueEntity"}.tap do |x|
|
1320
1602
|
expect(x).to be_instance_of(Expressir::Model::Entity)
|
1321
1603
|
expect(x.unique).to be_instance_of(Array)
|
@@ -1397,7 +1679,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1397
1679
|
expect(x.where).to be_instance_of(Array)
|
1398
1680
|
expect(x.where.count).to eq(1)
|
1399
1681
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
1400
|
-
expect(x.where[0].expression).to
|
1682
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1683
|
+
expect(x.where[0].expression.value).to eq(true)
|
1401
1684
|
end
|
1402
1685
|
|
1403
1686
|
entities.find{|x| x.id == "whereLabelEntity"}.tap do |x|
|
@@ -1406,7 +1689,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1406
1689
|
expect(x.where.count).to eq(1)
|
1407
1690
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
1408
1691
|
expect(x.where[0].id).to eq("WR1")
|
1409
|
-
expect(x.where[0].expression).to
|
1692
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
1693
|
+
expect(x.where[0].expression.value).to eq(true)
|
1410
1694
|
end
|
1411
1695
|
|
1412
1696
|
# subtype constraints
|
@@ -1770,7 +2054,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1770
2054
|
expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
|
1771
2055
|
expect(x.constants[0].id).to eq("test")
|
1772
2056
|
expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
|
1773
|
-
expect(x.constants[0].expression).to
|
2057
|
+
expect(x.constants[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2058
|
+
expect(x.constants[0].expression.value).to eq("xxx")
|
1774
2059
|
expect(x.statements).to be_instance_of(Array)
|
1775
2060
|
expect(x.statements.count).to eq(1)
|
1776
2061
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -1784,11 +2069,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1784
2069
|
expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
|
1785
2070
|
expect(x.constants[0].id).to eq("test")
|
1786
2071
|
expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
|
1787
|
-
expect(x.constants[0].expression).to
|
2072
|
+
expect(x.constants[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2073
|
+
expect(x.constants[0].expression.value).to eq("xxx")
|
1788
2074
|
expect(x.constants[1]).to be_instance_of(Expressir::Model::Constant)
|
1789
2075
|
expect(x.constants[1].id).to eq("test2")
|
1790
2076
|
expect(x.constants[1].type).to be_instance_of(Expressir::Model::Types::String)
|
1791
|
-
expect(x.constants[1].expression).to
|
2077
|
+
expect(x.constants[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2078
|
+
expect(x.constants[1].expression.value).to eq("xxx")
|
1792
2079
|
expect(x.statements).to be_instance_of(Array)
|
1793
2080
|
expect(x.statements.count).to eq(1)
|
1794
2081
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -1847,7 +2134,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1847
2134
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
1848
2135
|
expect(x.locals[0].id).to eq("test")
|
1849
2136
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
1850
|
-
expect(x.locals[0].expression).to
|
2137
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2138
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
1851
2139
|
expect(x.statements).to be_instance_of(Array)
|
1852
2140
|
expect(x.statements.count).to eq(1)
|
1853
2141
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -1861,11 +2149,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1861
2149
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
1862
2150
|
expect(x.locals[0].id).to eq("test")
|
1863
2151
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
1864
|
-
expect(x.locals[0].expression).to
|
2152
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2153
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
1865
2154
|
expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
|
1866
2155
|
expect(x.locals[1].id).to eq("test2")
|
1867
2156
|
expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
|
1868
|
-
expect(x.locals[1].expression).to
|
2157
|
+
expect(x.locals[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2158
|
+
expect(x.locals[1].expression.value).to eq("xxx")
|
1869
2159
|
expect(x.statements).to be_instance_of(Array)
|
1870
2160
|
expect(x.statements.count).to eq(1)
|
1871
2161
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -1879,11 +2169,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
1879
2169
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
1880
2170
|
expect(x.locals[0].id).to eq("test")
|
1881
2171
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
1882
|
-
expect(x.locals[0].expression).to
|
2172
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2173
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
1883
2174
|
expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
|
1884
2175
|
expect(x.locals[1].id).to eq("test2")
|
1885
2176
|
expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
|
1886
|
-
expect(x.locals[1].expression).to
|
2177
|
+
expect(x.locals[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2178
|
+
expect(x.locals[1].expression.value).to eq("xxx")
|
1887
2179
|
expect(x.statements).to be_instance_of(Array)
|
1888
2180
|
expect(x.statements.count).to eq(1)
|
1889
2181
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2000,7 +2292,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2000
2292
|
expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
|
2001
2293
|
expect(x.constants[0].id).to eq("test")
|
2002
2294
|
expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2003
|
-
expect(x.constants[0].expression).to
|
2295
|
+
expect(x.constants[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2296
|
+
expect(x.constants[0].expression.value).to eq("xxx")
|
2004
2297
|
end
|
2005
2298
|
|
2006
2299
|
procedures.find{|x| x.id == "multipleConstantProcedure"}.tap do |x|
|
@@ -2010,11 +2303,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2010
2303
|
expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
|
2011
2304
|
expect(x.constants[0].id).to eq("test")
|
2012
2305
|
expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2013
|
-
expect(x.constants[0].expression).to
|
2306
|
+
expect(x.constants[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2307
|
+
expect(x.constants[0].expression.value).to eq("xxx")
|
2014
2308
|
expect(x.constants[1]).to be_instance_of(Expressir::Model::Constant)
|
2015
2309
|
expect(x.constants[1].id).to eq("test2")
|
2016
2310
|
expect(x.constants[1].type).to be_instance_of(Expressir::Model::Types::String)
|
2017
|
-
expect(x.constants[1].expression).to
|
2311
|
+
expect(x.constants[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2312
|
+
expect(x.constants[1].expression.value).to eq("xxx")
|
2018
2313
|
end
|
2019
2314
|
|
2020
2315
|
procedures.find{|x| x.id == "localProcedure"}.tap do |x|
|
@@ -2057,7 +2352,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2057
2352
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
2058
2353
|
expect(x.locals[0].id).to eq("test")
|
2059
2354
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2060
|
-
expect(x.locals[0].expression).to
|
2355
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2356
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
2061
2357
|
end
|
2062
2358
|
|
2063
2359
|
procedures.find{|x| x.id == "multipleLocalExpressionProcedure"}.tap do |x|
|
@@ -2067,11 +2363,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2067
2363
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
2068
2364
|
expect(x.locals[0].id).to eq("test")
|
2069
2365
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2070
|
-
expect(x.locals[0].expression).to
|
2366
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2367
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
2071
2368
|
expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
|
2072
2369
|
expect(x.locals[1].id).to eq("test2")
|
2073
2370
|
expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
|
2074
|
-
expect(x.locals[1].expression).to
|
2371
|
+
expect(x.locals[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2372
|
+
expect(x.locals[1].expression.value).to eq("xxx")
|
2075
2373
|
end
|
2076
2374
|
|
2077
2375
|
procedures.find{|x| x.id == "multipleShorthandLocalExpressionProcedure"}.tap do |x|
|
@@ -2081,11 +2379,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2081
2379
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
2082
2380
|
expect(x.locals[0].id).to eq("test")
|
2083
2381
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2084
|
-
expect(x.locals[0].expression).to
|
2382
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2383
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
2085
2384
|
expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
|
2086
2385
|
expect(x.locals[1].id).to eq("test2")
|
2087
2386
|
expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
|
2088
|
-
expect(x.locals[1].expression).to
|
2387
|
+
expect(x.locals[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2388
|
+
expect(x.locals[1].expression.value).to eq("xxx")
|
2089
2389
|
end
|
2090
2390
|
|
2091
2391
|
# rules
|
@@ -2098,7 +2398,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2098
2398
|
expect(x.where).to be_instance_of(Array)
|
2099
2399
|
expect(x.where.count).to eq(1)
|
2100
2400
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2101
|
-
expect(x.where[0].expression).to
|
2401
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2402
|
+
expect(x.where[0].expression.value).to eq(true)
|
2102
2403
|
end
|
2103
2404
|
|
2104
2405
|
rules.find{|x| x.id == "typeRule"}.tap do |x|
|
@@ -2115,7 +2416,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2115
2416
|
expect(x.where).to be_instance_of(Array)
|
2116
2417
|
expect(x.where.count).to eq(1)
|
2117
2418
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2118
|
-
expect(x.where[0].expression).to
|
2419
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2420
|
+
expect(x.where[0].expression.value).to eq(true)
|
2119
2421
|
end
|
2120
2422
|
|
2121
2423
|
rules.find{|x| x.id == "constantRule"}.tap do |x|
|
@@ -2129,11 +2431,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2129
2431
|
expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
|
2130
2432
|
expect(x.constants[0].id).to eq("test")
|
2131
2433
|
expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2132
|
-
expect(x.constants[0].expression).to
|
2434
|
+
expect(x.constants[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2435
|
+
expect(x.constants[0].expression.value).to eq("xxx")
|
2133
2436
|
expect(x.where).to be_instance_of(Array)
|
2134
2437
|
expect(x.where.count).to eq(1)
|
2135
2438
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2136
|
-
expect(x.where[0].expression).to
|
2439
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2440
|
+
expect(x.where[0].expression.value).to eq(true)
|
2137
2441
|
end
|
2138
2442
|
|
2139
2443
|
rules.find{|x| x.id == "multipleConstantRule"}.tap do |x|
|
@@ -2147,15 +2451,18 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2147
2451
|
expect(x.constants[0]).to be_instance_of(Expressir::Model::Constant)
|
2148
2452
|
expect(x.constants[0].id).to eq("test")
|
2149
2453
|
expect(x.constants[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2150
|
-
expect(x.constants[0].expression).to
|
2454
|
+
expect(x.constants[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2455
|
+
expect(x.constants[0].expression.value).to eq("xxx")
|
2151
2456
|
expect(x.constants[1]).to be_instance_of(Expressir::Model::Constant)
|
2152
2457
|
expect(x.constants[1].id).to eq("test2")
|
2153
2458
|
expect(x.constants[1].type).to be_instance_of(Expressir::Model::Types::String)
|
2154
|
-
expect(x.constants[1].expression).to
|
2459
|
+
expect(x.constants[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2460
|
+
expect(x.constants[1].expression.value).to eq("xxx")
|
2155
2461
|
expect(x.where).to be_instance_of(Array)
|
2156
2462
|
expect(x.where.count).to eq(1)
|
2157
2463
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2158
|
-
expect(x.where[0].expression).to
|
2464
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2465
|
+
expect(x.where[0].expression.value).to eq(true)
|
2159
2466
|
end
|
2160
2467
|
|
2161
2468
|
rules.find{|x| x.id == "localRule"}.tap do |x|
|
@@ -2172,7 +2479,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2172
2479
|
expect(x.where).to be_instance_of(Array)
|
2173
2480
|
expect(x.where.count).to eq(1)
|
2174
2481
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2175
|
-
expect(x.where[0].expression).to
|
2482
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2483
|
+
expect(x.where[0].expression.value).to eq(true)
|
2176
2484
|
end
|
2177
2485
|
|
2178
2486
|
rules.find{|x| x.id == "multipleLocalRule"}.tap do |x|
|
@@ -2192,7 +2500,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2192
2500
|
expect(x.where).to be_instance_of(Array)
|
2193
2501
|
expect(x.where.count).to eq(1)
|
2194
2502
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2195
|
-
expect(x.where[0].expression).to
|
2503
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2504
|
+
expect(x.where[0].expression.value).to eq(true)
|
2196
2505
|
end
|
2197
2506
|
|
2198
2507
|
rules.find{|x| x.id == "multipleShorthandLocalRule"}.tap do |x|
|
@@ -2212,7 +2521,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2212
2521
|
expect(x.where).to be_instance_of(Array)
|
2213
2522
|
expect(x.where.count).to eq(1)
|
2214
2523
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2215
|
-
expect(x.where[0].expression).to
|
2524
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2525
|
+
expect(x.where[0].expression.value).to eq(true)
|
2216
2526
|
end
|
2217
2527
|
|
2218
2528
|
rules.find{|x| x.id == "localExpressionRule"}.tap do |x|
|
@@ -2226,11 +2536,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2226
2536
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
2227
2537
|
expect(x.locals[0].id).to eq("test")
|
2228
2538
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2229
|
-
expect(x.locals[0].expression).to
|
2539
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2540
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
2230
2541
|
expect(x.where).to be_instance_of(Array)
|
2231
2542
|
expect(x.where.count).to eq(1)
|
2232
2543
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2233
|
-
expect(x.where[0].expression).to
|
2544
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2545
|
+
expect(x.where[0].expression.value).to eq(true)
|
2234
2546
|
end
|
2235
2547
|
|
2236
2548
|
rules.find{|x| x.id == "multipleLocalExpressionRule"}.tap do |x|
|
@@ -2244,15 +2556,18 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2244
2556
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
2245
2557
|
expect(x.locals[0].id).to eq("test")
|
2246
2558
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2247
|
-
expect(x.locals[0].expression).to
|
2559
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2560
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
2248
2561
|
expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
|
2249
2562
|
expect(x.locals[1].id).to eq("test2")
|
2250
2563
|
expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
|
2251
|
-
expect(x.locals[1].expression).to
|
2564
|
+
expect(x.locals[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2565
|
+
expect(x.locals[1].expression.value).to eq("xxx")
|
2252
2566
|
expect(x.where).to be_instance_of(Array)
|
2253
2567
|
expect(x.where.count).to eq(1)
|
2254
2568
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2255
|
-
expect(x.where[0].expression).to
|
2569
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2570
|
+
expect(x.where[0].expression.value).to eq(true)
|
2256
2571
|
end
|
2257
2572
|
|
2258
2573
|
rules.find{|x| x.id == "multipleShorthandLocalExpressionRule"}.tap do |x|
|
@@ -2266,15 +2581,18 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2266
2581
|
expect(x.locals[0]).to be_instance_of(Expressir::Model::Local)
|
2267
2582
|
expect(x.locals[0].id).to eq("test")
|
2268
2583
|
expect(x.locals[0].type).to be_instance_of(Expressir::Model::Types::String)
|
2269
|
-
expect(x.locals[0].expression).to
|
2584
|
+
expect(x.locals[0].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2585
|
+
expect(x.locals[0].expression.value).to eq("xxx")
|
2270
2586
|
expect(x.locals[1]).to be_instance_of(Expressir::Model::Local)
|
2271
2587
|
expect(x.locals[1].id).to eq("test2")
|
2272
2588
|
expect(x.locals[1].type).to be_instance_of(Expressir::Model::Types::String)
|
2273
|
-
expect(x.locals[1].expression).to
|
2589
|
+
expect(x.locals[1].expression).to be_instance_of(Expressir::Model::Literals::String)
|
2590
|
+
expect(x.locals[1].expression.value).to eq("xxx")
|
2274
2591
|
expect(x.where).to be_instance_of(Array)
|
2275
2592
|
expect(x.where.count).to eq(1)
|
2276
2593
|
expect(x.where[0]).to be_instance_of(Expressir::Model::Where)
|
2277
|
-
expect(x.where[0].expression).to
|
2594
|
+
expect(x.where[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2595
|
+
expect(x.where[0].expression.value).to eq(true)
|
2278
2596
|
end
|
2279
2597
|
|
2280
2598
|
# statements
|
@@ -2329,7 +2647,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2329
2647
|
expect(x.expression.qualifiers).to be_instance_of(Array)
|
2330
2648
|
expect(x.expression.qualifiers.count).to eq(1)
|
2331
2649
|
expect(x.expression.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
|
2332
|
-
expect(x.expression.qualifiers[0].index1).to
|
2650
|
+
expect(x.expression.qualifiers[0].index1).to be_instance_of(Expressir::Model::Literals::Integer)
|
2651
|
+
expect(x.expression.qualifiers[0].index1.value).to eq("1")
|
2333
2652
|
expect(x.statements).to be_instance_of(Array)
|
2334
2653
|
expect(x.statements.count).to eq(1)
|
2335
2654
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2344,8 +2663,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2344
2663
|
expect(x.expression.qualifiers).to be_instance_of(Array)
|
2345
2664
|
expect(x.expression.qualifiers.count).to eq(1)
|
2346
2665
|
expect(x.expression.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
|
2347
|
-
expect(x.expression.qualifiers[0].index1).to
|
2348
|
-
expect(x.expression.qualifiers[0].
|
2666
|
+
expect(x.expression.qualifiers[0].index1).to be_instance_of(Expressir::Model::Literals::Integer)
|
2667
|
+
expect(x.expression.qualifiers[0].index1.value).to eq("1")
|
2668
|
+
expect(x.expression.qualifiers[0].index2).to be_instance_of(Expressir::Model::Literals::Integer)
|
2669
|
+
expect(x.expression.qualifiers[0].index2.value).to eq("9")
|
2349
2670
|
expect(x.statements).to be_instance_of(Array)
|
2350
2671
|
expect(x.statements.count).to eq(1)
|
2351
2672
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2355,7 +2676,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2355
2676
|
expect(x).to be_instance_of(Expressir::Model::Statements::Assignment)
|
2356
2677
|
expect(x.ref).to be_instance_of(Expressir::Model::Ref)
|
2357
2678
|
expect(x.ref.id).to eq("test")
|
2358
|
-
expect(x.expression).to
|
2679
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2680
|
+
expect(x.expression.value).to eq(true)
|
2359
2681
|
end
|
2360
2682
|
|
2361
2683
|
functions.find{|x| x.id == "assignmentAttributeStatement"}.statements[0].tap do |x|
|
@@ -2368,7 +2690,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2368
2690
|
expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::AttributeQualifier)
|
2369
2691
|
expect(x.ref.qualifiers[0].attribute).to be_instance_of(Expressir::Model::Ref)
|
2370
2692
|
expect(x.ref.qualifiers[0].attribute.id).to eq("test")
|
2371
|
-
expect(x.expression).to
|
2693
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2694
|
+
expect(x.expression.value).to eq(true)
|
2372
2695
|
end
|
2373
2696
|
|
2374
2697
|
functions.find{|x| x.id == "assignmentGroupStatement"}.statements[0].tap do |x|
|
@@ -2381,7 +2704,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2381
2704
|
expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::GroupQualifier)
|
2382
2705
|
expect(x.ref.qualifiers[0].entity).to be_instance_of(Expressir::Model::Ref)
|
2383
2706
|
expect(x.ref.qualifiers[0].entity.id).to eq("test")
|
2384
|
-
expect(x.expression).to
|
2707
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2708
|
+
expect(x.expression.value).to eq(true)
|
2385
2709
|
end
|
2386
2710
|
|
2387
2711
|
functions.find{|x| x.id == "assignmentIndexStatement"}.statements[0].tap do |x|
|
@@ -2392,8 +2716,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2392
2716
|
expect(x.ref.qualifiers).to be_instance_of(Array)
|
2393
2717
|
expect(x.ref.qualifiers.count).to eq(1)
|
2394
2718
|
expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
|
2395
|
-
expect(x.ref.qualifiers[0].index1).to
|
2396
|
-
expect(x.
|
2719
|
+
expect(x.ref.qualifiers[0].index1).to be_instance_of(Expressir::Model::Literals::Integer)
|
2720
|
+
expect(x.ref.qualifiers[0].index1.value).to eq("1")
|
2721
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2722
|
+
expect(x.expression.value).to eq(true)
|
2397
2723
|
end
|
2398
2724
|
|
2399
2725
|
functions.find{|x| x.id == "assignmentIndex2Statement"}.statements[0].tap do |x|
|
@@ -2404,9 +2730,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2404
2730
|
expect(x.ref.qualifiers).to be_instance_of(Array)
|
2405
2731
|
expect(x.ref.qualifiers.count).to eq(1)
|
2406
2732
|
expect(x.ref.qualifiers[0]).to be_instance_of(Expressir::Model::Expressions::IndexQualifier)
|
2407
|
-
expect(x.ref.qualifiers[0].index1).to
|
2408
|
-
expect(x.ref.qualifiers[0].
|
2409
|
-
expect(x.
|
2733
|
+
expect(x.ref.qualifiers[0].index1).to be_instance_of(Expressir::Model::Literals::Integer)
|
2734
|
+
expect(x.ref.qualifiers[0].index1.value).to eq("1")
|
2735
|
+
expect(x.ref.qualifiers[0].index2).to be_instance_of(Expressir::Model::Literals::Integer)
|
2736
|
+
expect(x.ref.qualifiers[0].index2.value).to eq("9")
|
2737
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2738
|
+
expect(x.expression.value).to eq(true)
|
2410
2739
|
end
|
2411
2740
|
|
2412
2741
|
functions.find{|x| x.id == "caseStatement"}.statements[0].tap do |x|
|
@@ -2416,7 +2745,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2416
2745
|
expect(x.actions).to be_instance_of(Array)
|
2417
2746
|
expect(x.actions.count).to eq(1)
|
2418
2747
|
expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
|
2419
|
-
expect(x.actions[0].
|
2748
|
+
expect(x.actions[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2749
|
+
expect(x.actions[0].expression.value).to eq(true)
|
2420
2750
|
expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
|
2421
2751
|
end
|
2422
2752
|
|
@@ -2427,10 +2757,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2427
2757
|
expect(x.actions).to be_instance_of(Array)
|
2428
2758
|
expect(x.actions.count).to eq(2)
|
2429
2759
|
expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
|
2430
|
-
expect(x.actions[0].
|
2760
|
+
expect(x.actions[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2761
|
+
expect(x.actions[0].expression.value).to eq(true)
|
2431
2762
|
expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
|
2432
2763
|
expect(x.actions[1]).to be_instance_of(Expressir::Model::Statements::CaseAction)
|
2433
|
-
expect(x.actions[1].
|
2764
|
+
expect(x.actions[1].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2765
|
+
expect(x.actions[1].expression.value).to eq(true)
|
2434
2766
|
expect(x.actions[1].statement).to be_instance_of(Expressir::Model::Statements::Null)
|
2435
2767
|
end
|
2436
2768
|
|
@@ -2441,10 +2773,12 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2441
2773
|
expect(x.actions).to be_instance_of(Array)
|
2442
2774
|
expect(x.actions.count).to eq(2)
|
2443
2775
|
expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
|
2444
|
-
expect(x.actions[0].
|
2776
|
+
expect(x.actions[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2777
|
+
expect(x.actions[0].expression.value).to eq(true)
|
2445
2778
|
expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
|
2446
2779
|
expect(x.actions[1]).to be_instance_of(Expressir::Model::Statements::CaseAction)
|
2447
|
-
expect(x.actions[1].
|
2780
|
+
expect(x.actions[1].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2781
|
+
expect(x.actions[1].expression.value).to eq(true)
|
2448
2782
|
expect(x.actions[1].statement).to be_instance_of(Expressir::Model::Statements::Null)
|
2449
2783
|
end
|
2450
2784
|
|
@@ -2455,7 +2789,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2455
2789
|
expect(x.actions).to be_instance_of(Array)
|
2456
2790
|
expect(x.actions.count).to eq(1)
|
2457
2791
|
expect(x.actions[0]).to be_instance_of(Expressir::Model::Statements::CaseAction)
|
2458
|
-
expect(x.actions[0].
|
2792
|
+
expect(x.actions[0].expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2793
|
+
expect(x.actions[0].expression.value).to eq(true)
|
2459
2794
|
expect(x.actions[0].statement).to be_instance_of(Expressir::Model::Statements::Null)
|
2460
2795
|
expect(x.otherwise_statement).to be_instance_of(Expressir::Model::Statements::Null)
|
2461
2796
|
end
|
@@ -2473,7 +2808,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2473
2808
|
|
2474
2809
|
functions.find{|x| x.id == "ifStatement"}.statements[0].tap do |x|
|
2475
2810
|
expect(x).to be_instance_of(Expressir::Model::Statements::If)
|
2476
|
-
expect(x.
|
2811
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2812
|
+
expect(x.expression.value).to eq(true)
|
2477
2813
|
expect(x.statements).to be_instance_of(Array)
|
2478
2814
|
expect(x.statements.count).to eq(1)
|
2479
2815
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2481,7 +2817,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2481
2817
|
|
2482
2818
|
functions.find{|x| x.id == "if2Statement"}.statements[0].tap do |x|
|
2483
2819
|
expect(x).to be_instance_of(Expressir::Model::Statements::If)
|
2484
|
-
expect(x.
|
2820
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2821
|
+
expect(x.expression.value).to eq(true)
|
2485
2822
|
expect(x.statements).to be_instance_of(Array)
|
2486
2823
|
expect(x.statements.count).to eq(2)
|
2487
2824
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2490,7 +2827,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2490
2827
|
|
2491
2828
|
functions.find{|x| x.id == "ifElseStatement"}.statements[0].tap do |x|
|
2492
2829
|
expect(x).to be_instance_of(Expressir::Model::Statements::If)
|
2493
|
-
expect(x.
|
2830
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2831
|
+
expect(x.expression.value).to eq(true)
|
2494
2832
|
expect(x.statements).to be_instance_of(Array)
|
2495
2833
|
expect(x.statements.count).to eq(1)
|
2496
2834
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2501,7 +2839,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2501
2839
|
|
2502
2840
|
functions.find{|x| x.id == "if2ElseStatement"}.statements[0].tap do |x|
|
2503
2841
|
expect(x).to be_instance_of(Expressir::Model::Statements::If)
|
2504
|
-
expect(x.
|
2842
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2843
|
+
expect(x.expression.value).to eq(true)
|
2505
2844
|
expect(x.statements).to be_instance_of(Array)
|
2506
2845
|
expect(x.statements.count).to eq(2)
|
2507
2846
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2513,7 +2852,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2513
2852
|
|
2514
2853
|
functions.find{|x| x.id == "ifElse2Statement"}.statements[0].tap do |x|
|
2515
2854
|
expect(x).to be_instance_of(Expressir::Model::Statements::If)
|
2516
|
-
expect(x.
|
2855
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2856
|
+
expect(x.expression.value).to eq(true)
|
2517
2857
|
expect(x.statements).to be_instance_of(Array)
|
2518
2858
|
expect(x.statements.count).to eq(1)
|
2519
2859
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2525,7 +2865,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2525
2865
|
|
2526
2866
|
functions.find{|x| x.id == "if2Else2Statement"}.statements[0].tap do |x|
|
2527
2867
|
expect(x).to be_instance_of(Expressir::Model::Statements::If)
|
2528
|
-
expect(x.
|
2868
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2869
|
+
expect(x.expression.value).to eq(true)
|
2529
2870
|
expect(x.statements).to be_instance_of(Array)
|
2530
2871
|
expect(x.statements.count).to eq(2)
|
2531
2872
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2552,7 +2893,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2552
2893
|
expect(x.procedure.id).to eq("emptyProcedure")
|
2553
2894
|
expect(x.parameters).to be_instance_of(Array)
|
2554
2895
|
expect(x.parameters.count).to eq(1)
|
2555
|
-
expect(x.parameters[0]).to
|
2896
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
2897
|
+
expect(x.parameters[0].value).to eq(true)
|
2556
2898
|
end
|
2557
2899
|
|
2558
2900
|
functions.find{|x| x.id == "procedureCallParameter2Statement"}.statements[0].tap do |x|
|
@@ -2561,8 +2903,10 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2561
2903
|
expect(x.procedure.id).to eq("emptyProcedure")
|
2562
2904
|
expect(x.parameters).to be_instance_of(Array)
|
2563
2905
|
expect(x.parameters.count).to eq(2)
|
2564
|
-
expect(x.parameters[0]).to
|
2565
|
-
expect(x.parameters[
|
2906
|
+
expect(x.parameters[0]).to be_instance_of(Expressir::Model::Literals::Logical)
|
2907
|
+
expect(x.parameters[0].value).to eq(true)
|
2908
|
+
expect(x.parameters[1]).to be_instance_of(Expressir::Model::Literals::Logical)
|
2909
|
+
expect(x.parameters[1].value).to eq(true)
|
2566
2910
|
end
|
2567
2911
|
|
2568
2912
|
functions.find{|x| x.id == "procedureCallInsertStatement"}.statements[0].tap do |x|
|
@@ -2586,9 +2930,11 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2586
2930
|
|
2587
2931
|
functions.find{|x| x.id == "repeatVariableStatement"}.statements[0].tap do |x|
|
2588
2932
|
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
2589
|
-
expect(x.
|
2590
|
-
expect(x.bound1).to
|
2591
|
-
expect(x.
|
2933
|
+
expect(x.id).to eq("test")
|
2934
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
2935
|
+
expect(x.bound1.value).to eq("1")
|
2936
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
2937
|
+
expect(x.bound2.value).to eq("9")
|
2592
2938
|
expect(x.statements).to be_instance_of(Array)
|
2593
2939
|
expect(x.statements.count).to eq(1)
|
2594
2940
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2596,10 +2942,13 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2596
2942
|
|
2597
2943
|
functions.find{|x| x.id == "repeatVariableIncrementStatement"}.statements[0].tap do |x|
|
2598
2944
|
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
2599
|
-
expect(x.
|
2600
|
-
expect(x.bound1).to
|
2601
|
-
expect(x.
|
2602
|
-
expect(x.
|
2945
|
+
expect(x.id).to eq("test")
|
2946
|
+
expect(x.bound1).to be_instance_of(Expressir::Model::Literals::Integer)
|
2947
|
+
expect(x.bound1.value).to eq("1")
|
2948
|
+
expect(x.bound2).to be_instance_of(Expressir::Model::Literals::Integer)
|
2949
|
+
expect(x.bound2.value).to eq("9")
|
2950
|
+
expect(x.increment).to be_instance_of(Expressir::Model::Literals::Integer)
|
2951
|
+
expect(x.increment.value).to eq("2")
|
2603
2952
|
expect(x.statements).to be_instance_of(Array)
|
2604
2953
|
expect(x.statements.count).to eq(1)
|
2605
2954
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2607,7 +2956,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2607
2956
|
|
2608
2957
|
functions.find{|x| x.id == "repeatWhileStatement"}.statements[0].tap do |x|
|
2609
2958
|
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
2610
|
-
expect(x.while_expression).to
|
2959
|
+
expect(x.while_expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2960
|
+
expect(x.while_expression.value).to eq(true)
|
2611
2961
|
expect(x.statements).to be_instance_of(Array)
|
2612
2962
|
expect(x.statements.count).to eq(1)
|
2613
2963
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2615,7 +2965,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2615
2965
|
|
2616
2966
|
functions.find{|x| x.id == "repeatUntilStatement"}.statements[0].tap do |x|
|
2617
2967
|
expect(x).to be_instance_of(Expressir::Model::Statements::Repeat)
|
2618
|
-
expect(x.until_expression).to
|
2968
|
+
expect(x.until_expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2969
|
+
expect(x.until_expression.value).to eq(true)
|
2619
2970
|
expect(x.statements).to be_instance_of(Array)
|
2620
2971
|
expect(x.statements.count).to eq(1)
|
2621
2972
|
expect(x.statements[0]).to be_instance_of(Expressir::Model::Statements::Null)
|
@@ -2623,7 +2974,8 @@ RSpec.describe Expressir::ExpressExp::Parser do
|
|
2623
2974
|
|
2624
2975
|
functions.find{|x| x.id == "returnStatement"}.statements[0].tap do |x|
|
2625
2976
|
expect(x).to be_instance_of(Expressir::Model::Statements::Return)
|
2626
|
-
expect(x.expression).to
|
2977
|
+
expect(x.expression).to be_instance_of(Expressir::Model::Literals::Logical)
|
2978
|
+
expect(x.expression.value).to eq(true)
|
2627
2979
|
end
|
2628
2980
|
|
2629
2981
|
functions.find{|x| x.id == "skipStatement"}.statements[0].tap do |x|
|