[why]
suite_list maybe not consistent with group key if sort group matrixes.
[how]
use suites_hash instead of suites_list to keep correct congruent
relationship with same group_key.
Signed-off-by: Lu Kaiyi <2392863668(a)qq.com>
---
lib/compare.rb | 4 ++--
lib/compare_matrixes.rb | 10 +++++-----
lib/matrix2.rb | 6 +++---
3 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/lib/compare.rb b/lib/compare.rb
index db264f8..b5251fc 100644
--- a/lib/compare.rb
+++ b/lib/compare.rb
@@ -62,8 +62,8 @@ end
def compare_group(argv, dimensions, options)
conditions = parse_conditions(argv)
dims = dimensions.split(' ')
- groups_matrices, suites_list = create_groups_matrices_list(conditions, dims)
- compare_group_matrices(groups_matrices, suites_list, options)
+ groups_matrices, suites_hash = create_groups_matrices_list(conditions, dims)
+ compare_group_matrices(groups_matrices, suites_hash, options)
end
def create_groups_matrices_list(conditions, dims)
diff --git a/lib/compare_matrixes.rb b/lib/compare_matrixes.rb
index 0727797..6e4c2aa 100644
--- a/lib/compare_matrixes.rb
+++ b/lib/compare_matrixes.rb
@@ -387,25 +387,25 @@ end
# input: group matrices
# output: pre compare result of each group
# the result with more comparison objects first
-def compare_group_matrices(group_matrices, suites_list, options)
+def compare_group_matrices(group_matrices, suites_hash, options)
result_str = ''
group_matrices_array = sort_by_matrix_size(group_matrices)
group_matrices_array.each do |matrice_kv|
- result_str += get_matrix_str(matrice_kv[0], matrice_kv[1], suites_list, options)
+ result_str += get_matrix_str(matrice_kv[0], matrice_kv[1], suites_hash[matrice_kv[0]], options)
end
result_str
end
-def get_matrix_str(matrice_key, matrice_value, suites_list, options)
+def get_matrix_str(matrice_key, matrice_value, suite_list, options)
m_list = []
m_titles = []
matrice_value.each do |dim, matrix|
m_titles << dim
m_list << matrix
end
- return compare_matrixes(m_list, suites_list.shift, m_titles, matrice_key, options: options) if options[:no_print]
+ return compare_matrixes(m_list, suite_list, m_titles, matrice_key, options: options) if options[:no_print]
- print compare_matrixes(m_list, suites_list.shift, m_titles, matrice_key, options: options)
+ print compare_matrixes(m_list, suite_list, m_titles, matrice_key, options: options)
return ''
end
diff --git a/lib/matrix2.rb b/lib/matrix2.rb
index ef5d935..891c3b0 100644
--- a/lib/matrix2.rb
+++ b/lib/matrix2.rb
@@ -121,7 +121,7 @@ end
# ...
# }
def combine_group_query_data(query_data, dims)
- suites_list = []
+ suites_hash = {}
job_list = query_data['hits']['hits']
groups = auto_group(job_list, dims)
groups.each do |group_key, value|
@@ -134,10 +134,10 @@ def combine_group_query_data(query_data, dims)
groups[group_key][dimension_key], suites = create_matrix(jobs)
suite_list.concat(suites)
end
- suites_list << suite_list
+ suites_hash[group_key] = suite_list
end
- return groups, suites_list
+ return groups, suites_hash
end
# input:
--
2.23.0