def test_case_end(self): self.assertEqual(max_substring_with_k_unique('aadabbaba'), 'abbaba')
def test_input_not_str(self): self.assertEqual(max_substring_with_k_unique(777), 'string expected')
def test_unique_char_less_k(self): self.assertEqual(max_substring_with_k_unique('aaaaaaaaaaa'), 'aaaaaaaaaaa')
def test_empty_str(self): self.assertEqual(max_substring_with_k_unique(''), '')
def test_short_str(self): self.assertEqual(max_substring_with_k_unique('a'), 'a')
def test_case_mid(self): self.assertEqual(max_substring_with_k_unique('aadabddadaaadbbaba'), 'ddadaaad')