Initial implementation
This commit is contained in:
50
tests/test_sums.py
Normal file
50
tests/test_sums.py
Normal file
@@ -0,0 +1,50 @@
|
||||
import pytest
|
||||
|
||||
from sums.pairs import PotentialPairs, DiscoveredPairs, NumberPair, find_pairs
|
||||
|
||||
PairsTestCase = tuple[PotentialPairs, DiscoveredPairs]
|
||||
|
||||
SHORT_TEST: PairsTestCase = (
|
||||
[4, 23, 65, 67, 24, 12, 86],
|
||||
{90: set([NumberPair((4, 86)), NumberPair((23, 67))])},
|
||||
)
|
||||
|
||||
LONG_TEST: PairsTestCase = (
|
||||
[6, 4, 12, 10, 22, 54, 32, 42, 21, 11],
|
||||
{
|
||||
16: set([NumberPair((4, 12)), NumberPair((6, 10))]),
|
||||
32: set([NumberPair((10, 22)), NumberPair((21, 11))]),
|
||||
33: set([NumberPair((12, 21)), NumberPair((22, 11))]),
|
||||
43: set([NumberPair((22, 21)), NumberPair((32, 11))]),
|
||||
53: set([NumberPair((32, 21)), NumberPair((42, 11))]),
|
||||
54: set([NumberPair((12, 42)), NumberPair((22, 32))]),
|
||||
64: set([NumberPair((10, 54)), NumberPair((22, 42))]),
|
||||
},
|
||||
)
|
||||
|
||||
HAS_DUPLICATE_SUMS: PairsTestCase = (
|
||||
[33, 33, 32, 34],
|
||||
{
|
||||
66: set([NumberPair((33, 33)), NumberPair((32, 34))]),
|
||||
},
|
||||
)
|
||||
|
||||
HAS_DUPLICATE_PAIRS: PairsTestCase = (
|
||||
[33, 33, 33],
|
||||
{},
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("numbers", "expected"),
|
||||
[SHORT_TEST, LONG_TEST, HAS_DUPLICATE_SUMS, HAS_DUPLICATE_PAIRS],
|
||||
)
|
||||
def test_pairs(numbers: PotentialPairs, expected: DiscoveredPairs):
|
||||
discovered = find_pairs(numbers)
|
||||
assert discovered == expected
|
||||
|
||||
def test_number_pair_only_equals_self():
|
||||
a = NumberPair((3, 4))
|
||||
b = (3, 4)
|
||||
|
||||
assert not a.__eq__(b)
|
||||
Reference in New Issue
Block a user