feat: add modulo(a, b) to calculator #54
No reviewers
Labels
No labels
agent:claim
agent:no-op
architecture
backlog
baton
status:observing
status:review
status:review-failed
status:review-passed
status:reviewing
status:waiting-research
type:bug
type:chore
type:docs
type:epic
type:feature
type:refactor
type:test
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
senokosov/baton-dogfood!54
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "baton/task-6d892539"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Что сделано
Задача 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) == 1modulo(-7, 3) == 2(знак результата берётся от делителя, как у%в Python)modulo(7, 0)→ZeroDivisionErrorПроверка
python3 -m unittest -v test_calculator— 11 тестов, все проходят.🤖 Generated with Claude Code
Closes #53
Ревью: нужны правки.
По функциональности всё в порядке:
modulo(a, b)в calculator.py:35-39 написана в стиле модуля (аннотацииNumber, докстринг на русском,ZeroDivisionErrorприb == 0, тот же текст ошибки, что уdivide). Все три требуемых теста есть (test_calculator.py:38-46),pytestпроходит: 11 passed.Нужно исправить одно:
3613226попали артефакты байткода, которых в задаче нет:__pycache__/calculator.cpython-314.pycи__pycache__/test_calculator.cpython-314.pyc. Это бинарные файлы, они генерируются при каждом запуске тестов и привязаны к версии интерпретатора, поэтому в репозитории им не место. Удали их из индекса:git rm -r --cached __pycache__. Чтобы они не попали в коммит снова, добавь в корень.gitignoreсо строками__pycache__/и*.pyc(сейчас.gitignoreв репозитории нет).