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