Add tests
This commit is contained in:
parent
7114526f1c
commit
acfb0ab8f5
3 changed files with 72 additions and 0 deletions
17
pyproject.toml
Normal file
17
pyproject.toml
Normal file
|
@ -0,0 +1,17 @@
|
|||
[tool.poetry]
|
||||
name = "elite-engineering"
|
||||
version = "0.1.0"
|
||||
description = "Tools for engineering in Elite Dangerous"
|
||||
authors = ["Correl Roush <correl@gmail.com>"]
|
||||
license = "MIT"
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.9"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
black = "^21.12b0"
|
||||
pytest = "^6.2.5"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry>=0.12"]
|
||||
build-backend = "poetry.masonry.api"
|
55
tests/test_trade.py
Normal file
55
tests/test_trade.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
import fractions
|
||||
import unittest
|
||||
|
||||
from elite_engineering import trade
|
||||
|
||||
|
||||
class TradeCalculationTests(unittest.TestCase):
|
||||
def format_ratio(self, ratio: fractions.Fraction) -> str:
|
||||
return "{} → {}".format(ratio.numerator, ratio.denominator)
|
||||
|
||||
def test_same_category_exchange(self):
|
||||
expected = [
|
||||
["1 → 1", "1 → 3", "1 → 9", "1 → 27", "1 → 81"],
|
||||
["6 → 1", "1 → 1", "1 → 3", "1 → 9", "1 → 27"],
|
||||
["36 → 1", "6 → 1", "1 → 1", "1 → 3", "1 → 9"],
|
||||
["216 → 1", "36 → 1", "6 → 1", "1 → 1", "1 → 3"],
|
||||
["1296 → 1", "216 → 1", "36 → 1", "6 → 1", "1 → 1"],
|
||||
]
|
||||
|
||||
actual = [
|
||||
[
|
||||
self.format_ratio(
|
||||
trade.Material("name", "category", grade_in).trade_ratio(
|
||||
trade.Material("name", "category", grade_out)
|
||||
)
|
||||
)
|
||||
for grade_out in [1, 2, 3, 4, 5]
|
||||
]
|
||||
for grade_in in [1, 2, 3, 4, 5]
|
||||
]
|
||||
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
def test_different_category_exchange(self):
|
||||
expected = [
|
||||
["6 → 1", "2 → 1", "2 → 3", "2 → 9", "2 → 27"],
|
||||
["36 → 1", "6 → 1", "2 → 1", "2 → 3", "2 → 9"],
|
||||
["216 → 1", "36 → 1", "6 → 1", "2 → 1", "2 → 3"],
|
||||
["1296 → 1", "216 → 1", "36 → 1", "6 → 1", "2 → 1"],
|
||||
["7776 → 1", "1296 → 1", "216 → 1", "36 → 1", "6 → 1"],
|
||||
]
|
||||
|
||||
actual = [
|
||||
[
|
||||
self.format_ratio(
|
||||
trade.Material("name", "category", grade_in).trade_ratio(
|
||||
trade.Material("name", "other", grade_out)
|
||||
)
|
||||
)
|
||||
for grade_out in [1, 2, 3, 4, 5]
|
||||
]
|
||||
for grade_in in [1, 2, 3, 4, 5]
|
||||
]
|
||||
|
||||
self.assertEqual(expected, actual)
|
Loading…
Reference in a new issue