35 lines
1.6 KiB
Python
35 lines
1.6 KiB
Python
import pytest
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
# Добавляем родительскую директорию в sys.path для импорта модулей
|
|
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
|
|
|
|
from faction_utils import roll_dice, normalize_wikilink
|
|
|
|
# ----------------------------------------------- Dice Tests ------------------------------------------------------------
|
|
|
|
def test_roll_dice_static():
|
|
"""Проверяет парсинг нотации кубиков и вычисление статических бросков."""
|
|
assert roll_dice("1d1+5") == 6
|
|
assert roll_dice("2d1-1") == 1
|
|
assert roll_dice("10d1+0") == 10
|
|
|
|
def test_roll_dice_random():
|
|
"""Проверяет, что результаты случайных бросков кубиков находятся в ожидаемых границах."""
|
|
result = roll_dice("1d20")
|
|
assert 1 <= result <= 20
|
|
|
|
result = roll_dice("2d6+2")
|
|
assert 4 <= result <= 14
|
|
|
|
# ----------------------------------------------- String Parsing Tests ------------------------------------------------------------
|
|
|
|
def test_normalize_wikilink():
|
|
"""Проверяет нормализацию синтаксиса Obsidian wikilink в чистую строку."""
|
|
assert normalize_wikilink("[[Waterdeep]]") == "waterdeep"
|
|
assert normalize_wikilink("[[Waterdeep|City]]") == "waterdeep"
|
|
assert normalize_wikilink("Waterdeep") == "waterdeep"
|
|
assert normalize_wikilink("[[Neverwinter|The Jewel of the North]]") == "neverwinter"
|
|
assert normalize_wikilink("") == ""
|