Как утверждать, что два массива не пересекаются? - PullRequest
0 голосов
/ 27 июня 2018

Я использую chai для написания модульных тестов, и я хотел бы утверждать, что два массива не пересекаются (т.е. они не имеют общего элемента).

Примерно так:

assert.areDisjoint([1, 2, 3], [2, 4]);    // fail

assert.areDisjoint([0], [1, 1, 2]);       // pass

assert.areDisjoint(['foo'], ['foo']);     // fail

assert.areDisjoint(['foo', 'foo'], []);   // pass

Я посмотрел на множество различных предопределенных утверждений здесь и здесь , но, похоже, ничего не подходит.

Мой текущий (рабочий) подход:

assert.equal(
    new Set([...array1, ...array2]).size,
    new Set(array1).size + new Set(array2).size,
    'expected iterables to be disjoint'
);

Я думаю, вы понимаете, почему мне не нравится этот метод: он делает намерение неясным и раздувает код. Интересно, есть ли более элегантный способ написать это утверждение?

...