Я пытаюсь проверить, содержат ли два массива одинаковые элементы, без проверки порядка элементов. (Rails 5.2 / Rspec-rails 3.8.2)
Пример:
[['a1', 'a2'], ['b1', 'b2']]
[['b2', 'b1'], ['a2', 'a1']]
Я пытался использовать match_array и contains_exactly, но это работает только для первого уровня моего массива.
tab1 = [['a1', 'a2'], ['b1', 'b2']]
tab2 = [['b1', 'b2'], ['a1', 'a2']]
tab3 = [['a2', 'a1'], ['b2', 'b1']]
tab4 = [['b2', 'b1'], ['a2', 'a1']]
expect(tab1).to match_array tab2 # true
expect(tab1).to match_array tab3 # false
expect(tab1).to match_array tab4 # false
Есть ли подходящее средство для этого? Или, может быть, простой способ с составными сопоставлениями? Спасибо
РЕДАКТИРОВАТЬ Решение, которое я нахожу, заключается в следующем:
expect(tab1).to contain_exactly(contain_exactly('a1', 'a2'),
contain_exactly('b1', 'b2'))
, но я хотел бы найти что-то вроде этого
expect(tab1).to ....... tab2