feat: add modulo(a, b) to calculator #54

Merged
baton-bot merged 2 commits from baton/task-6d892539 into main 2026-10-16 21:42:38 +07:00
Collaborator

Что сделано

Задача Baton task-6d892539: «Калькулятор: функция остатка от деления modulo(a, b)».

  • calculator.py: добавлена modulo(a: Number, b: Number) -> Number. Она возвращает a % b и при b == 0 бросает ZeroDivisionError с тем же сообщением, что и divide. Докстринг на русском, как у остальных функций.
  • test_calculator.py: добавлены три теста:
    • modulo(7, 3) == 1
    • modulo(-7, 3) == 2 (знак результата берётся от делителя, как у % в Python)
    • modulo(7, 0) → ZeroDivisionError

Проверка

python3 -m unittest -v test_calculator — 11 тестов, все проходят.

🤖 Generated with Claude Code

Closes #53

## Что сделано Задача Baton `task-6d892539`: «Калькулятор: функция остатка от деления modulo(a, b)». - `calculator.py`: добавлена `modulo(a: Number, b: Number) -> Number`. Она возвращает `a % b` и при `b == 0` бросает `ZeroDivisionError` с тем же сообщением, что и `divide`. Докстринг на русском, как у остальных функций. - `test_calculator.py`: добавлены три теста: - `modulo(7, 3) == 1` - `modulo(-7, 3) == 2` (знак результата берётся от делителя, как у `%` в Python) - `modulo(7, 0)` → `ZeroDivisionError` ## Проверка `python3 -m unittest -v test_calculator` — 11 тестов, все проходят. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Closes #53
feat: add modulo(a, b) to calculator
All checks were successful
acceptance/all-checked Acceptance #53: все пункты отмечены
Acceptance Gate / acceptance/all-checked (pull_request) Successful in 1s
ci / check (pull_request) Successful in 3s
ci / check (push) Successful in 3s
36132267a8
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Author
Collaborator

Ревью: нужны правки.

По функциональности всё в порядке: modulo(a, b) в calculator.py:35-39 написана в стиле модуля (аннотации Number, докстринг на русском, ZeroDivisionError при b == 0, тот же текст ошибки, что у divide). Все три требуемых теста есть (test_calculator.py:38-46), pytest проходит: 11 passed.

Нужно исправить одно:

  1. В коммит 3613226 попали артефакты байткода, которых в задаче нет: __pycache__/calculator.cpython-314.pyc и __pycache__/test_calculator.cpython-314.pyc. Это бинарные файлы, они генерируются при каждом запуске тестов и привязаны к версии интерпретатора, поэтому в репозитории им не место. Удали их из индекса: git rm -r --cached __pycache__. Чтобы они не попали в коммит снова, добавь в корень .gitignore со строками __pycache__/ и *.pyc (сейчас .gitignore в репозитории нет).
**Ревью: нужны правки.** По функциональности всё в порядке: `modulo(a, b)` в calculator.py:35-39 написана в стиле модуля (аннотации `Number`, докстринг на русском, `ZeroDivisionError` при `b == 0`, тот же текст ошибки, что у `divide`). Все три требуемых теста есть (test_calculator.py:38-46), `pytest` проходит: 11 passed. Нужно исправить одно: 1. В коммит 3613226 попали артефакты байткода, которых в задаче нет: `__pycache__/calculator.cpython-314.pyc` и `__pycache__/test_calculator.cpython-314.pyc`. Это бинарные файлы, они генерируются при каждом запуске тестов и привязаны к версии интерпретатора, поэтому в репозитории им не место. Удали их из индекса: `git rm -r --cached __pycache__`. Чтобы они не попали в коммит снова, добавь в корень `.gitignore` со строками `__pycache__/` и `*.pyc` (сейчас `.gitignore` в репозитории нет). <!-- baton:idempotency-key:review-verdict:01a14528-711c-750c-9def-01fd6d892539:01a14528-db95-76db-994b-ab309203643d:request_changes -->
chore: untrack __pycache__ and add .gitignore
All checks were successful
ci / check (push) Successful in 3s
acceptance/all-checked Acceptance #53: все пункты отмечены
Acceptance Gate / acceptance/all-checked (pull_request) Successful in 1s
ci / check (pull_request) Successful in 3s
775ff7a85e
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
senokosov/baton-dogfood!54
No description provided.