37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import unittest
|
|
|
|
from solutions.day_04 import Solution
|
|
|
|
|
|
class Day4TestCase(unittest.TestCase):
|
|
def setUp(self):
|
|
self.solution = Solution()
|
|
|
|
def test_passphrase_has_only_unique_words(self):
|
|
passphrases = [
|
|
'aa bb cc dd ee',
|
|
'aa bb cc dd aa',
|
|
'aa bb cc dd aaa',
|
|
]
|
|
assert self.solution.validate(passphrases[0]) == True
|
|
assert self.solution.validate(passphrases[1]) == False
|
|
assert self.solution.validate(passphrases[2]) == True
|
|
assert self.solution.solve('\n'.join(passphrases)) == 2
|
|
|
|
def test_passphrase_has_no_anagrams(self):
|
|
passphrases = [
|
|
'abcde fghij',
|
|
'abcde xyz ecdab',
|
|
'a ab abc abd abf abj',
|
|
'iiii oiii ooii oooi oooo',
|
|
'oiii ioii iioi iiio',
|
|
]
|
|
assert self.solution.validate(passphrases[0], True) == True
|
|
assert self.solution.validate(passphrases[1], True) == False
|
|
assert self.solution.validate(passphrases[2], True) == True
|
|
assert self.solution.validate(passphrases[3], True) == True
|
|
assert self.solution.validate(passphrases[4], True) == False
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|