arcade-mcp/toolkits/math/tests/test_arithmetic.py
Nate Barbettini 894fa878f1
Fix ruff (#64)
On the last few PRs I have noticed two problems:
1. `ruff format` fails even though it seems OK on our local machines
(sometimes, not always)
2. Nate's and Sam's machines kept flip-flopping a specific piece of
formatting back and forth, indicating a subtle difference of config
hiding somewhere
3. This was reproducible by running `ruff format` in the terminal,
followed by `make check`. The former would edit files, and then `make
check` would edit them back!

This PR addresses both issues, and further standardizes our editor &
linter configs to be super stable.
Specifically:
1. The main fix for the above, the pre-commit hook was pinned to a super
old version of ruff.
This resulted in subtle differences in behavior between our machines,
and on CI.

2. Moved ruff settings from `pyproject.toml` to `.ruff.toml`
pyproject files in subdirectories (e.g. `toolkits/**`) were overriding
the main pyproject file and erasing the custom ruff config we set at the
root. This meant that our ruff config was applied to `arcade` but not to
any of the other packages.
By moving the config to `.ruff.toml` at the root, all projects will
inherit the same ruff linting & formatting config.

4. Un-ignored the `.vscode/` directory so that we can share
vscode/cursor workspace settings.
This is valuable for standardizing settings like the default formatter
(ruff) and default test framework (pytest).
However, it's important that going forward we _only_ commit things here
that should apply across all of our machines.

5. To avoid any conflict between prettier and ruff, prettier now
explicitly ignores *.py files

6. Finally, `ruff format` and `make check` agree. A number of files are
newly auto-formatted.
2024-09-25 09:47:30 -07:00

48 lines
842 B
Python

import pytest
from arcade_math.tools.arithmetic import (
add,
divide,
multiply,
sqrt,
subtract,
sum_list,
sum_range,
)
def test_add():
assert add(1, 2) == 3
assert add(-1, 1) == 0
assert add(0.5, 10.9) == 11.4
def test_subtract():
assert subtract(2, 1) == 1
assert subtract(2, 3.5) == -1.5
def test_multiply():
assert multiply(2, 3) == 6
assert multiply(-1, 1.5) == -1.5
def test_divide():
assert divide(6, 3) == 2.0
assert divide(5, 2) == 2.5
with pytest.raises(ZeroDivisionError):
divide(1, 0)
def test_sqrt():
assert sqrt(4) == 2.0
assert sqrt(9) == 3.0
def test_sum_list():
assert sum_list([1, 2, 3]) == 6
assert sum_list([0, -1.5, 1]) == -0.5
def test_sum_range():
assert sum_range(1, 3) == 6
assert sum_range(0, 10) == 55