def evaluate(self, tokens=None, evaluation=''):
        if tokens is None:
            if hasattr(self, 'tokens'):
                tokens = self.tokens
            else:
                raise ContextFreeGrammar.InvalidTokenSet
        expressions = [r[0] for r in self.rules]
        tokens = [r[1] for r in self.rules]
        groups = [[
            expressions[k],
            tokens[k].split(' ')] for k, _ in enumerate(tokens)
        ]
        prnt('Groups', groups)
        evaluation = self._evaluate(groups, evaluation='')
        new_tokens = list(evaluation)
        for token in new_tokens:
            for expression in expressions:
                if token in list(expression):
                    token = self._evaluate(groups, evaluation=evaluation)
        if ContextSensitiveGrammar.DEBUG:
            print('Final evaluation in `evaluate`: {}'.format(
                evaluation, ''.join(new_tokens)))
        return evaluation
Mock a method in the super class of the class being tested.
dataset/ETHPy150Open christabor/MoAL/MOAL/languages/formal_language_theory/grammars/context_sensitive.py/ContextSensitiveGrammar.evaluate--crossover with--dataset/ETHPy150Open google/simian/src/tests/simian/auth/gaeserver_test.py/Auth1ServerDatastoreMemcacheSessionTest._MockSuper