mirror of
https://github.com/donnemartin/interactive-coding-challenges
synced 2026-01-05 00:48:03 +00:00
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() |