docs: def evaluate_at(self, eval_at, testcases, mode=None):
          """ Sets the evaluation interation indices.
  
              :param list eval_at: iteration indices where an evaluation should be performed
              :param numpy.array testcases: testcases used for evaluation
  
          """
          self.eval_at = eval_at
          self.log.eval_at = eval_at
  
          if mode is None:
              if self.context_mode is None or (self.context_mode.has_key('choose_m') and self.context_mode['choose_m']):
                  mode = 'inverse'
              else:
                  mode = self.context_mode["mode"]
                  
  
          self.evaluation = Evaluation(self.ag, self.env, testcases, mode=mode)
          for test in testcases:
              self.log.add('testcases', test)