def test_startswith(self): self.assertEqual(_expand('abc', 'abcdef', 0, 0, 0), [(0, 0)]) self.assertEqual(_expand('abc', 'abcdef', 1, 0, 1), [(0, 0)]) self.assertEqual(_expand('abc', 'abcdef', 2, 0, 2), [(0, 0)]) self.assertEqual(_expand('abc', 'abcdef', 0, 1, 1), [(0, 0)]) self.assertEqual(_expand('abc', 'abcdef', 0, 2, 2), [(0, 0)]) self.assertEqual(_expand('abc', 'abcdef', 1, 1, 1), [(0, 0)]) self.assertEqual(_expand('abc', 'abcdef', 1, 1, 2), [(0, 0)]) self.assertEqual(_expand('abc', 'abcdef', 2, 2, 2), [(0, 0)])
def test_one_missing(self): # first item missing self.assertEqual(_expand('abcd', 'bcd---', 0, 1, 1), []) self.assertEqual(_expand('abcd', 'bcd---', 1, 0, 1), []) self.assertEqual(_expand('abcd', 'bcd---', 1, 1, 2), []) # second item missing self.assertEqual(_expand('abcd', 'acd---', 0, 1, 1), []) self.assertEqual(_expand('abcd', 'acd---', 1, 0, 1), []) self.assertEqual(_expand('abcd', 'acd---', 1, 1, 2), []) # last item missing self.assertEqual(_expand('abcd', 'abc---', 0, 1, 1), []) self.assertEqual(_expand('abcd', 'abc---', 1, 0, 1), [(1, 0)]) self.assertEqual(_expand('abcd', 'abc---', 1, 1, 2), [(1, 0)])
def test_one_extra(self): # extra first item self.assertEqual(_expand('bcd', 'abcd', 0, 0, 0), []) self.assertEqual(_expand('bcd', 'abcd', 0, 1, 1), [(0, 1)]) # extra third item self.assertEqual(_expand('abd', 'abcd', 0, 0, 0), []) self.assertEqual(_expand('abd', 'abcd', 0, 1, 1), [(0, 1)]) # extra last item self.assertEqual(_expand('abc', 'abcd', 0, 0, 0), [(0, 0)]) self.assertEqual(_expand('abc', 'abcd', 0, 1, 1), [(0, 0)])
def test_two_insertions(self): self.assertEqual(_expand('abc', 'a--bc', 0, 2, 2), [(0, 2)]) self.assertEqual(_expand('abc', 'a--bc', 2, 0, 2), [(2, 0)]) self.assertEqual(_expand('abc', 'a--bc', 2, 2, 2), [(2, 0), (0, 2)]) self.assertEqual(_expand('abc', 'a--bc', 1, 1, 2), [])
def test_double_first_item(self): self.assertEqual(_expand('abc', 'aabc', 1, 1, 1), [(0, 1)])
def test_insert_and_substitute(self): self.assertEqual(_expand('abcdefg', 'abc-def----', 1, 1, 2), [(1, 1)]) self.assertEqual(_expand('abcdefg', 'abc-def----', 1, 1, 1), []) self.assertEqual(_expand('abcdefg', 'abc-def----', 1, 0, 1), []) self.assertEqual(_expand('abcdefg', 'abc-def----', 0, 1, 1), [])
def test_no_result(self): self.assertEqual(_expand('abc', 'def', 0, 0, 0), []) self.assertEqual(_expand('abc', 'defg', 1, 1, 1), []) self.assertEqual(_expand('abc', 'defg', 1, 1, 2), [])
def test_identical(self): self.assertEqual(_expand('abc', 'abc', 0, 0, 0), [(0, 0)])