В частности, у меня есть метод, который выбирает n элементов из списка таким образом, что% из них удовлетворяют одному критерию, а b% соответствуют секунде и т.д. Упрощенным примером будет выбор 5 элементов, у которых 50% имеют заданное свойство со значением "true" и 50% "false"; 50% времени, когда метод вернет 2 true/3 false, а остальные 50%, 3 true/2 false.
Статистически говоря, это означает, что более 100 запусков, я должен получить около 250 true/250 false, но из-за случайности 240/260 вполне возможно.
Каков наилучший способ для unit test этого? Я предполагаю, что, хотя технически 300/200 возможен, вероятно, это должно завершиться неудачно, если это произойдет. Существует ли общепринятый толерант к таким случаям, и если да, то как вы определяете, что это такое?
Изменить: в коде, над которым я работаю, у меня нет роскоши использовать генератор псевдослучайных чисел или механизм принуждения его к балансу со временем, поскольку выбранные списки сгенерированных на разных машинах. Мне нужно продемонстрировать, что со временем среднее количество элементов, соответствующих каждому критерию, будет иметь тенденцию к требуемому проценту.