/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
contrib/python/prompt-toolkit/py3/tests/test_utils.py
78 строк
2 KB
wilytiger
support building opensource nbs with ya make
09 окт 2023, 17:33
09 окт 2023, 17:33
759d542
Код
Авторство
О чём код?
from __future__ import annotations import itertools import pytest from prompt_toolkit.utils import take_using_weights def test_using_weights(): def take(generator, count): return list(itertools.islice(generator, 0, count)) # Check distribution. data = take(take_using_weights(["A", "B", "C"], [5, 10, 20]), 35) assert data.count("A") == 5 assert data.count("B") == 10 assert data.count("C") == 20 assert data == [ "A", "B", "C", "C", "B", "C", "C", "A", "B", "C", "C", "B", "C", "C", "A", "B", "C", "C", "B", "C", "C", "A", "B", "C", "C", "B", "C", "C", "A", "B", "C", "C", "B", "C", "C", ] # Another order. data = take(take_using_weights(["A", "B", "C"], [20, 10, 5]), 35) assert data.count("A") == 20 assert data.count("B") == 10 assert data.count("C") == 5 # Bigger numbers. data = take(take_using_weights(["A", "B", "C"], [20, 10, 5]), 70) assert data.count("A") == 40 assert data.count("B") == 20 assert data.count("C") == 10 # Negative numbers. data = take(take_using_weights(["A", "B", "C"], [-20, 10, 0]), 70) assert data.count("A") == 0 assert data.count("B") == 70 assert data.count("C") == 0 # All zero-weight items. with pytest.raises(ValueError): take(take_using_weights(["A", "B", "C"], [0, 0, 0]), 70)