ravensat 1.0.4 → 1.0.7

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: e53ca35aa21cc9c623de888c201c19d54146d586c34a549db7dab634e16ad3d6
4
- data.tar.gz: bf87c8b08b9be42c7c9fbf7b1bddbfc88293ad266a8f190e1d8479e7131e1277
3
+ metadata.gz: ceabe3e3d03de374a38f92df583ab84bc69cbdfd80bc842d722bf8730a60c69e
4
+ data.tar.gz: 1973d2e270011520d59ec8ab32296f4589a4511901b4701bb58c74f066535a57
5
5
  SHA512:
6
- metadata.gz: b1e524ea817f9f6ab63892e9c608b6aea58d7b499dc0db5275d9634206680de45a1e2a22c0e19f78b6efaff5fd5e972a164dded7e19d1ffde10785e60e2c5156
7
- data.tar.gz: 06a06b8914d6d654c127b4b36e94afe84cfbfe322f50717d3d3cbbfb1598e8726c05155ecf624b21fc765ac3e32b003ab0374f806555255499b31778c674a7b1
6
+ metadata.gz: b6e2aa1f4f21111d07f8e586876293fe2569190eeb4875cfef4bf35d1bc23c755475d0470b15f24dd6e640d6f7d3a4ec927b6102f8401c3dc7a46527f1b5d2fd
7
+ data.tar.gz: 6f69d190d6fe8546035a59ba4643c33322210716a295a3b6c556d4f063d1a187e54afd507d0b4c0a10d65bc3db3766f23f2b58cc522f6ad67d0955ed78b77ca7
@@ -1,6 +1,7 @@
1
1
  module Ravensat
2
2
  class AndNode < OprNode
3
3
  def &(object)
4
+ raise TypeError.new("#{object.class} can't be coerced into Ravensat::Node") unless object.is_a? Node
4
5
  @children.append object
5
6
  self
6
7
  end
@@ -63,10 +63,12 @@ module Ravensat
63
63
  end
64
64
 
65
65
  def &(object)
66
+ raise TypeError.new("#{object.class} can't be coerced into Ravensat::Node") unless object.is_a? Node
66
67
  AndNode.new(self, object)
67
68
  end
68
69
 
69
70
  def |(object)
71
+ raise TypeError.new("#{object.class} can't be coerced into Ravensat::Node") unless object.is_a? Node
70
72
  OrNode.new(self, object)
71
73
  end
72
74
 
@@ -1,6 +1,7 @@
1
1
  module Ravensat
2
2
  class OrNode < OprNode
3
3
  def |(object)
4
+ raise TypeError.new("#{object.class} can't be coerced into Ravensat::Node") unless object.is_a? Node
4
5
  @children.append object
5
6
  self
6
7
  end
data/lib/ravensat/claw.rb CHANGED
@@ -1,9 +1,24 @@
1
1
  module Ravensat
2
2
  module Claw
3
3
  def self.alo(bool_vars)
4
+ return bool_vars.first if bool_vars.size == 1
4
5
  bool_vars.reduce(:|)
5
6
  end
6
7
 
8
+ def self.at_most_k(bool_vars, k)
9
+ return bool_vars.first if bool_vars.size == 1
10
+ bool_vars.combination(k+1).map do |e|
11
+ e.map(&:~@).reduce(:|)
12
+ end.reduce(:&)
13
+ end
14
+
15
+ def self.at_least_k(bool_vars, k)
16
+ return bool_vars.first if bool_vars.size == 1
17
+ bool_vars.combination(k-1).map do |e|
18
+ alo(bool_vars - e)
19
+ end.reduce(:&)
20
+ end
21
+
7
22
  def self.pairwise_amo(bool_vars)
8
23
  return bool_vars.first if bool_vars.size == 1
9
24
  bool_vars.combination(2).map do |e|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Ravensat
4
- VERSION = "1.0.4"
4
+ VERSION = "1.0.7"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ravensat
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - rikuto matsuda
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-08-18 00:00:00.000000000 Z
11
+ date: 2022-08-23 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: