2025-07-11 12:21:33 +03:00
|
|
|
import pytest
|
2025-07-23 13:06:06 +03:00
|
|
|
from simple_llm.tokenizer.bpe import BPE
|
2025-07-11 12:21:33 +03:00
|
|
|
|
2025-07-23 13:06:06 +03:00
|
|
|
def test_basic_bpe():
|
|
|
|
|
"""Базовый тест работы BPE"""
|
|
|
|
|
tokenizer = BPE(vocab_size=10)
|
|
|
|
|
text = "мама мыла раму"
|
2025-07-11 12:21:33 +03:00
|
|
|
|
2025-07-23 13:06:06 +03:00
|
|
|
# Обучение
|
|
|
|
|
tokenizer.fit(text)
|
2025-07-11 12:21:33 +03:00
|
|
|
|
2025-07-23 13:06:06 +03:00
|
|
|
# Проверка размера словаря
|
|
|
|
|
assert len(tokenizer.vocab) == 10
|
|
|
|
|
|
|
|
|
|
# Кодирование/декодирование
|
|
|
|
|
encoded = tokenizer.encode(text)
|
|
|
|
|
decoded = tokenizer.decode(encoded)
|
|
|
|
|
|
|
|
|
|
assert decoded == text
|
|
|
|
|
assert len(encoded) > 0
|
|
|
|
|
|
|
|
|
|
# Проверка неизвестных символов
|
|
|
|
|
unknown_encoded = tokenizer.encode("мама мыла окно")
|
|
|
|
|
assert -1 in unknown_encoded # Специальный токен для неизвестных символов
|