wongi-engine 0.3.4 → 0.3.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wongi-engine/dsl.rb +6 -0
- data/lib/wongi-engine/filter.rb +3 -1
- data/lib/wongi-engine/filter/greater_than_or_equal_test.rb +32 -0
- data/lib/wongi-engine/filter/less_than_or_equal_test.rb +32 -0
- data/lib/wongi-engine/version.rb +1 -1
- data/spec/filter_specs/greater_than_equality_test_spec.rb +33 -0
- data/spec/filter_specs/less_than_equality_test_spec.rb +33 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d3f9d2adf82d8e36010a2ea956c308d58c073673cba49013352c420ed69180e5
|
4
|
+
data.tar.gz: 792ee293fce552b92c516f17749253fe9c6ba6c72f8b8e4c751b32b7f87902a6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 319936296084020880b58d775a241eaa575bfce12246fac060e8150a0ff97a30aa7558653c771548616b7a1d0da450fa625dc11ce9ceca490cdf8affd2005231
|
7
|
+
data.tar.gz: 8f7397d233f1eb4cd714c0c69caa866cd18dd42a3304bc19c263662bafb122382b9be50ffd101bb9dacf50a9c4ce11804b4071dfefefeda6d72a38d60074b8f0
|
data/lib/wongi-engine/dsl.rb
CHANGED
@@ -81,9 +81,15 @@ module Wongi::Engine::DSL
|
|
81
81
|
clause :less
|
82
82
|
accept Wongi::Engine::LessThanTest
|
83
83
|
|
84
|
+
clause :lte
|
85
|
+
accept Wongi::Engine::LessThanOrEqualTest
|
86
|
+
|
84
87
|
clause :greater
|
85
88
|
accept Wongi::Engine::GreaterThanTest
|
86
89
|
|
90
|
+
clause :gte
|
91
|
+
accept Wongi::Engine::GreaterThanOrEqualTest
|
92
|
+
|
87
93
|
clause :assert, :dynamic
|
88
94
|
accept Wongi::Engine::AssertingTest
|
89
95
|
|
data/lib/wongi-engine/filter.rb
CHANGED
@@ -3,4 +3,6 @@ require 'wongi-engine/filter/equality_test'
|
|
3
3
|
require 'wongi-engine/filter/inequality_test'
|
4
4
|
require 'wongi-engine/filter/asserting_test'
|
5
5
|
require 'wongi-engine/filter/less_than_test'
|
6
|
-
require 'wongi-engine/filter/greater_than_test'
|
6
|
+
require 'wongi-engine/filter/greater_than_test'
|
7
|
+
require 'wongi-engine/filter/less_than_or_equal_test'
|
8
|
+
require 'wongi-engine/filter/greater_than_or_equal_test'
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Wongi::Engine
|
3
|
+
class GreaterThanOrEqualTest < FilterTest
|
4
|
+
attr_reader :x, :y
|
5
|
+
|
6
|
+
def initialize(x, y)
|
7
|
+
@x = x
|
8
|
+
@y = y
|
9
|
+
end
|
10
|
+
|
11
|
+
def passes?(token)
|
12
|
+
x = if Template.variable? @x
|
13
|
+
token[@x]
|
14
|
+
else
|
15
|
+
@x
|
16
|
+
end
|
17
|
+
|
18
|
+
y = if Template.variable? @y
|
19
|
+
token[@y]
|
20
|
+
else
|
21
|
+
@y
|
22
|
+
end
|
23
|
+
|
24
|
+
return false if x == :_ || y == :_
|
25
|
+
x >= y
|
26
|
+
end
|
27
|
+
|
28
|
+
def ==(other)
|
29
|
+
super && x == other.x && y == other.y
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module Wongi::Engine
|
3
|
+
class LessThanOrEqualTest < FilterTest
|
4
|
+
attr_reader :x, :y
|
5
|
+
|
6
|
+
def initialize(x, y)
|
7
|
+
@x = x
|
8
|
+
@y = y
|
9
|
+
end
|
10
|
+
|
11
|
+
def passes?(token)
|
12
|
+
x = if Template.variable? @x
|
13
|
+
token[@x]
|
14
|
+
else
|
15
|
+
@x
|
16
|
+
end
|
17
|
+
|
18
|
+
y = if Template.variable? @y
|
19
|
+
token[@y]
|
20
|
+
else
|
21
|
+
@y
|
22
|
+
end
|
23
|
+
|
24
|
+
return false if x == :_ || y == :_
|
25
|
+
x <= y
|
26
|
+
end
|
27
|
+
|
28
|
+
def ==(other)
|
29
|
+
super && x == other.x && y == other.y
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/lib/wongi-engine/version.rb
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'Greater Than Or Equal test' do
|
6
|
+
before :each do
|
7
|
+
@engine = Wongi::Engine.create
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :engine
|
11
|
+
|
12
|
+
attr_reader :production
|
13
|
+
|
14
|
+
def test_rule(&block)
|
15
|
+
@production = (engine << rule('test-rule', &block))
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should interact with optional node correctly' do
|
19
|
+
# before the fix, filters would try to piggy-back on optional templates
|
20
|
+
|
21
|
+
test_rule do
|
22
|
+
forall do
|
23
|
+
has :Number, :assign_check, :_
|
24
|
+
gte :Number, 6
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
engine << [6, :assign_check, nil]
|
29
|
+
engine << [7, :assign_check, nil]
|
30
|
+
engine << [5, :assign_check, nil]
|
31
|
+
expect(@production.size).to eq(2)
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe 'Less Than Or Equal test' do
|
6
|
+
before :each do
|
7
|
+
@engine = Wongi::Engine.create
|
8
|
+
end
|
9
|
+
|
10
|
+
attr_reader :engine
|
11
|
+
|
12
|
+
attr_reader :production
|
13
|
+
|
14
|
+
def test_rule(&block)
|
15
|
+
@production = (engine << rule('test-rule', &block))
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should interact with optional node correctly' do
|
19
|
+
# before the fix, filters would try to piggy-back on optional templates
|
20
|
+
|
21
|
+
test_rule do
|
22
|
+
forall do
|
23
|
+
has :Number, :assign_check, :_
|
24
|
+
lte :Number, 6
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
engine << [5, :assign_check, nil]
|
29
|
+
engine << [6, :assign_check, nil]
|
30
|
+
engine << [7, :assign_check, nil] #should not pass
|
31
|
+
expect(@production.size).to eq(2)
|
32
|
+
end
|
33
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wongi-engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Valeri Sokolov
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-02-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -131,8 +131,10 @@ files:
|
|
131
131
|
- lib/wongi-engine/filter/asserting_test.rb
|
132
132
|
- lib/wongi-engine/filter/equality_test.rb
|
133
133
|
- lib/wongi-engine/filter/filter_test.rb
|
134
|
+
- lib/wongi-engine/filter/greater_than_or_equal_test.rb
|
134
135
|
- lib/wongi-engine/filter/greater_than_test.rb
|
135
136
|
- lib/wongi-engine/filter/inequality_test.rb
|
137
|
+
- lib/wongi-engine/filter/less_than_or_equal_test.rb
|
136
138
|
- lib/wongi-engine/filter/less_than_test.rb
|
137
139
|
- lib/wongi-engine/graph.rb
|
138
140
|
- lib/wongi-engine/network.rb
|
@@ -150,7 +152,9 @@ files:
|
|
150
152
|
- spec/dataset_spec.rb
|
151
153
|
- spec/dsl_spec.rb
|
152
154
|
- spec/filter_specs/assert_test_spec.rb
|
155
|
+
- spec/filter_specs/greater_than_equality_test_spec.rb
|
153
156
|
- spec/filter_specs/less_test_spec.rb
|
157
|
+
- spec/filter_specs/less_than_equality_test_spec.rb
|
154
158
|
- spec/generation_spec.rb
|
155
159
|
- spec/high_level_spec.rb
|
156
160
|
- spec/network_spec.rb
|
@@ -198,7 +202,9 @@ test_files:
|
|
198
202
|
- spec/dataset_spec.rb
|
199
203
|
- spec/dsl_spec.rb
|
200
204
|
- spec/filter_specs/assert_test_spec.rb
|
205
|
+
- spec/filter_specs/greater_than_equality_test_spec.rb
|
201
206
|
- spec/filter_specs/less_test_spec.rb
|
207
|
+
- spec/filter_specs/less_than_equality_test_spec.rb
|
202
208
|
- spec/generation_spec.rb
|
203
209
|
- spec/high_level_spec.rb
|
204
210
|
- spec/network_spec.rb
|