wongi-engine 0.3.4 → 0.3.5

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 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