Проверьте, что array.sample не дает последовательных эквивалентных результатов - PullRequest
1 голос
/ 14 марта 2012

Как мне пройти тестирование следующего вспомогательного метода?

module HypotheticalHelper
  def next(array)
    array.sample
  end
end

У меня есть это:

helper.next([1,2]).should_not == helper.next([1,2])

Есть ли лучший метод, чем повторять это статистически значимое количество раз?

1 Ответ

1 голос
/ 14 марта 2012

Какое поведение вы пытаетесь проверить? Что вы получаете случайные элементы из массива? Если это так, просто запустите тест, пока тот же вызов не вернет элемент, который не соответствует последнему запуску.

Как бы это использовать? Если вам нужен произвольный доступ к массиву, почему бы не просто array.shuffle!, а затем выполнить итерацию массива?

Array#sample может дать последовательные эквивалентные результаты; ожидается, что так и будет. Если вы не хотите получать одинаковые результаты одновременно, вам придется поддерживать состояние и цикл, пока вы не получите результат, который не был последним, или вы не захотите использовать что-то вроде моего предложения случайного выбора (которое никогда не будет дать повторяющиеся результаты).

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