Откройте контекст
Выберите папку проекта и обозначьте нужные файлы или поведение.
Выберите резервуар до 32 элементов из конечного потока до 1000 элементов локальным генератором с начальным значением. Повторите начальное значение для проверки воспроизводимости и отклоните поток короче выборки, сохраняя исходные списки.
Выберите папку проекта и обозначьте нужные файлы или поведение.
Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.
Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
from random import Random
def reservoir_sample(items, size, seed):
if type(size) is not int or not 0 <= size <= 32:
raise ValueError("size.range")
if type(seed) is not int or not 0 <= seed < 2**32:
raise ValueError("seed.range")
rng, sample, count = Random(seed), [], 0
for index, item in enumerate(items):
count = index + 1
if count > 1000:
raise ValueError("stream.limit")
if index < size:
sample.append(item)
elif size:
position = rng.randrange(count)
if position < size:
sample[position] = item
if size > count:
raise ValueError("stream.short")
return sampleПример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.