'Performs a test
:param name_parser: to use for test
:param section:
:param transform:
:param verbose:
:return:'

def _test_names(self, name_parser, section, transform=None, verbose=False):

    if (VERBOSE or verbose):
        print()
        print(u'Running', section, u'tests')
    for cur_test_base in SIMPLE_TEST_CASES[section]:
        if transform:
            cur_test = transform(cur_test_base)
            name_parser.file_name = cur_test
        else:
            cur_test = cur_test_base
        if (VERBOSE or verbose):
            print(u'Testing', cur_test)
        result = SIMPLE_TEST_CASES[section][cur_test_base]
        self.show.name = (result.series_name if result else None)
        name_parser.showObj = self.show
        if (not result):
            self.assertRaises(parser.InvalidNameException, name_parser.parse, cur_test)
            return
        else:
            result.which_regex = [section]
            test_result = name_parser.parse(cur_test)
        if (DEBUG or verbose):
            print(u'air_by_date:', test_result.is_air_by_date, u'air_date:', test_result.air_date)
            print(u'anime:', test_result.is_anime, u'ab_episode_numbers:', test_result.ab_episode_numbers)
            print(test_result)
            print(result)
        self.assertEqual(test_result.which_regex, [section], u'{0}    :    {1}    !=    {2}'.format(cur_test, test_result.which_regex, [section]))
        self.assertEqual(six.text_type(test_result), six.text_type(result), u'{0}    :    {1}    !=    {2}'.format(cur_test, six.text_type(test_result), six.text_type(result)))
