mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 12:50:32 +01:00
26 lines
768 B
Python
26 lines
768 B
Python
import pytest
|
|
import numpy # type: ignore
|
|
|
|
from aoc2019.day12 import simulate_moons, find_repetition
|
|
|
|
SAMPLES = [
|
|
numpy.array([[-1, 0, 2], [2, -10, -7], [4, -8, 8], [3, 5, -1]]),
|
|
numpy.array([[-8, -10, 0], [5, 5, 10], [2, -7, 3], [9, -8, -3]]),
|
|
]
|
|
|
|
|
|
@pytest.mark.parametrize('iterations,result,moons', [
|
|
(10, 179, numpy.copy(SAMPLES[0])),
|
|
(100, 1940, numpy.copy(SAMPLES[1])),
|
|
])
|
|
def test_kinetic_energy(moons: numpy.array, iterations: int, result: int) -> None:
|
|
assert simulate_moons(moons, iterations) == result
|
|
|
|
|
|
@pytest.mark.parametrize('outcome,moons', [
|
|
(2772, numpy.copy(SAMPLES[0])),
|
|
(4686774924, numpy.copy(SAMPLES[1])),
|
|
])
|
|
def test_repetition(moons: numpy.array, outcome: int) -> None:
|
|
assert find_repetition(moons) == outcome
|