def METHOD_NAME(self):
    CASES = [
        ([1, 3, 6, 10], '\x24\xC2\xA2\xE0\xA4\xB9\xF0\x90\x8D\x88'),
        ([1, 3,
          'Invalid UTF-8 continuation byte'], '\x24\xC2\xA2\xE0\xE0\xA4'),
        ([1, 3, 6, 'Invalid start of UTF-8 character'],
         '\x24\xC2\xA2\xE0\xA4\xA4\xB9'),
        ([1, 3, 'Invalid start of UTF-8 character'], '\x24\xC2\xA2\xFF'),
        ([1, 'Incomplete UTF-8 character'], '\x24\xF0\x90\x8D'),
    ]
    for expected_indexes, input_str in CASES:
        print()
        print('_NextUtf8Char case %r %r' % (expected_indexes, input_str))
        i = 0
        actual_indexes = []
        while True:
            try:
                i = string_ops._NextUtf8Char(input_str, i)
                actual_indexes.append(i)
                if i >= len(input_str):
                    break
            except error.Strict as e:
                actual_indexes.append(e.msg)
                break
        self.assertEqual(expected_indexes, actual_indexes)