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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f70a76b11b19e257c3a6b291a69f369d5450ca9171493d8145cec51e45a84dcb
4
- data.tar.gz: 2affbdd8616b22659d8b52063238c8668dcc9e484b4c2a300da1bc5293a37ec3
3
+ metadata.gz: d3f9d2adf82d8e36010a2ea956c308d58c073673cba49013352c420ed69180e5
4
+ data.tar.gz: 792ee293fce552b92c516f17749253fe9c6ba6c72f8b8e4c751b32b7f87902a6
5
5
  SHA512:
6
- metadata.gz: 1258959929174cf579adf433f01ac9130a731eaaefbffc3dcca9d208bd83e33d54e12f0b041af34e20f0e1188c9c430b96ea34174cc8487bc547f8d757dc6a3d
7
- data.tar.gz: 4dd53c994df99b82ee04bd030371a11c168a3544b06a343bdfd042ab17e67ee71c22280b80df5384e3587efa7e493412315d5aa719c992237151cd651fb616f8
6
+ metadata.gz: 319936296084020880b58d775a241eaa575bfce12246fac060e8150a0ff97a30aa7558653c771548616b7a1d0da450fa625dc11ce9ceca490cdf8affd2005231
7
+ data.tar.gz: 8f7397d233f1eb4cd714c0c69caa866cd18dd42a3304bc19c263662bafb122382b9be50ffd101bb9dacf50a9c4ce11804b4071dfefefeda6d72a38d60074b8f0
@@ -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
 
@@ -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
@@ -1,5 +1,5 @@
1
1
  module Wongi
2
2
  module Engine
3
- VERSION = "0.3.4"
3
+ VERSION = "0.3.5"
4
4
  end
5
5
  end
@@ -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
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: 2019-01-26 00:00:00.000000000 Z
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