# Тесты для GreekRomanUtils

## Описание

Этот каталог содержит тесты для библиотеки GreekRomanUtils, которая предназначена для конвертации арабских чисел в греческие и римские цифры.

## Структура тестов

- `test_greek_convert.py` - тесты для класса `GreekConvert`
- `test_roman_convert.py` - тесты для класса `RomanConvert`
- `test_greek_number.py` - тесты для класса `GreekNumber`
- `test_roman_number.py` - тесты для класса `RomanNumber`
- `test_arithmetic_operations.py` - тесты для арифметических операций над числами

## Запуск тестов

Для запуска всех тестов выполните:

```bash
pytest
```

Для запуска конкретного файла тестов:

```bash
pytest tests/test_greek_convert.py
```

Для запуска с подробным выводом:

```bash
pytest -v
```

Для запуска с отображением покрытия кода (требуется pytest-cov):

```bash
pytest --cov=GreekRomanUtils --cov-report=html
```

## Покрытие тестами

Тесты покрывают:

1. **GreekConvert**:
   - Конвертация арабских чисел в греческие (обычные и позиционные)
   - Обратная конвертация греческих чисел в арабские
   - Работа с заглавными и строчными буквами
   - Конвертация Unicode в названия букв и обратно
   - Обработка ошибок

2. **RomanConvert**:
   - Конвертация арабских чисел в римские
   - Обратная конвертация римских чисел в арабские
   - Работа с большими числами (с макроном ~)
   - Создание объектов RomanNumber
   - Обработка ошибок

3. **GreekNumber**:
   - Инициализация с числом и значением
   - Строковое представление
   - Итерация и индексация
   - Конвертация в обоих направлениях
   - Позиционная система счисления
   - Работа с заглавными буквами
   - Обработка ошибок

4. **RomanNumber**:
   - Инициализация
   - Строковое представление
   - Итерация и индексация
   - Конвертация арабских чисел в римские
   - Работа с большими числами
   - Обработка ошибок

5. **Арифметические операции**:
   - Базовые операции (+, -, *, /, //, %, **)
   - Операции сравнения (==, !=, <, <=, >, >=)
   - Составные операции присваивания (+=, -=, *=, /=, //=, %=, **=)
   - Унарные операции (+, -)
   - Операции между греческими/римскими числами и int
   - Смешанные операции

## Требования

- Python >= 3.7
- pytest >= 7.4.4

## Примечания

- Все тесты используют pytest
- Тесты организованы в классы для лучшей структуры
- Каждый тест имеет описательное имя и docstring
- Тесты проверяют как успешные сценарии, так и обработку ошибок
