mirror of
https://github.com/donnemartin/interactive-coding-challenges.git
synced 2024-03-22 13:11:13 +08:00
556a9adc11
Summary: The current test cases for the "string permutation checker" problem do not include a test case where the inputs have the same elements at different multiplicities. Without this test case, the implementation return s1 is not None and s2 is not None and set(s1) == set(s2) would pass all tests. Test Plan: First, change one of the implementations to the above implementation, and see that the original tests still pass. Then, apply this patch to add the new test case. Then, revert the implementation change to see all tests pass again.
30 lines
839 B
Python
30 lines
839 B
Python
from nose.tools import assert_equal
|
|
|
|
|
|
class TestPermutation(object):
|
|
|
|
def test_permutation(self, func):
|
|
assert_equal(func(None, 'foo'), False)
|
|
assert_equal(func('', 'foo'), False)
|
|
assert_equal(func('Nib', 'bin'), False)
|
|
assert_equal(func('act', 'cat'), True)
|
|
assert_equal(func('a ct', 'ca t'), True)
|
|
assert_equal(func('dog', 'doggo'), False)
|
|
print('Success: test_permutation')
|
|
|
|
|
|
def main():
|
|
test = TestPermutation()
|
|
permutations = Permutations()
|
|
test.test_permutation(permutations.is_permutation)
|
|
try:
|
|
permutations_alt = PermutationsAlt()
|
|
test.test_permutation(permutations_alt.is_permutation)
|
|
except NameError:
|
|
# Alternate solutions are only defined
|
|
# in the solutions file
|
|
pass
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |