activecube 0.1.43 → 0.1.44

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: aec3cd5d380f65b797c530930d4cfaac15b39918527b7c90e2ec54a064207729
4
- data.tar.gz: 14c6c81f226ed03143e84478b52a056ed63de31be67bc5f5bbed98fb4004490f
3
+ metadata.gz: f4657cc9edb63bf6760180e758e985d47bbd452b479d17a9dea044a5030ca83a
4
+ data.tar.gz: ce8fe2944bccabb655d76924a677f1a7a0324d5b7a6d88e2ed33d10813923d00
5
5
  SHA512:
6
- metadata.gz: 508fc6bf05c575b0f7417a3e56a03eb306deafcc9655c166e34233fd98e6ec42321409c0a30a6143195e4eddee352e1114d01d6cce305a0cfb9ca9f6ba243732
7
- data.tar.gz: edc18eadd6d0bee5d96423f141e70f480dced3b38afd8f0a05e31112c8ced58fe8ec33b4924790101706cfcf9c5f9364da6be41e31164b5f58f6b4b7fff08b9f
6
+ metadata.gz: 1edc0deb21fac6290515851e11c678e2a4f1c65db5c760163b3f37566680f6318c8e91e0d6e72d672a21dca59aac4c6f16fe722d59302cde3e65804d9ccf7a86
7
+ data.tar.gz: 17198fbc0d5b0d0879d194e62e32b3906eadc3bd86ff8684fccc8c2ed220bcf066c79277b67ec181e9a61e52ed1a9b274f9d4edd1e6ed9f741120cae010a45d9
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- activecube (0.1.43)
12
+ activecube (0.1.44)
13
13
  activerecord (>= 5.2)
14
14
 
15
15
  GEM
@@ -93,6 +93,7 @@ module Activecube::Processor
93
93
  # reduce size of cost_matrix deleting duplicates
94
94
  uniq_rows = []
95
95
  rows_indices = {}
96
+ possible_tables = {}
96
97
  cost_matrix.each_with_index do |row, i|
97
98
  flag = false
98
99
 
@@ -105,6 +106,7 @@ module Activecube::Processor
105
106
 
106
107
  unless flag
107
108
  rows_indices[i] = uniq_rows.length
109
+ possible_tables[i] = Hash[row.map.with_index { |c, index| [index, true] if c }.compact]
108
110
  uniq_rows.push(row)
109
111
  end
110
112
  end
@@ -112,6 +114,11 @@ module Activecube::Processor
112
114
  # generating variants for reduced matrix
113
115
  vars = gen_permutations(tables_count, uniq_rows.length)
114
116
 
117
+ # filter possible variants
118
+ vars = vars.filter do |v|
119
+ v.map.with_index.all? {|t_n, i| possible_tables[i][t_n]}
120
+ end
121
+
115
122
  # restore variants for full matrix
116
123
  vars.map do |variant|
117
124
  full_v = Array.new(metrics_count)
@@ -1,3 +1,3 @@
1
1
  module Activecube
2
- VERSION = "0.1.43"
2
+ VERSION = "0.1.44"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activecube
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.43
4
+ version: 0.1.44
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aleksey Studnev
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-29 00:00:00.000000000 Z
11
+ date: 2022-05-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord