def do_test(self, filename, expected):
        '''Implementazione del test
            - ftesto: il file in cui reperire la matrice e la lista delle parole
            - expected: la lista attesa
        '''
        expected = [ x if x==-1 else tuple(x) for x in expected ]
        if DEBUG:
            import program01 as program
            result   = program.es1(filename)
        else:
            # prima controlliamo che l'implementazione sia ricorsiva
            try:
                import program01 as program
                isrecursive.decorate_module(program)
                program.es1(filename)
            except isrecursive.RecursionDetectedError:
                pass
            else:
                raise Exception("Recursion not present")
            finally:
                isrecursive.undecorate_module(program)
                del program

            with    self.ignored_function('builtins.print'), \
                    self.ignored_function('pprint.pprint'), \
                    self.forbidden_function('builtins.input'), \
                    self.check_open({filename : ['r']}), \
                    self.check_imports( allowed=['program01','encodings.utf_8','encodings.utf_8_sig']), \
                    self.timeout(1), \
                    self.timer(1):
                import program01 as program
                result   = program.es1(filename)
        self.assertIsInstance(result,   list,     "il risultato prodotto non e' una lista")
        self.assertEqual(result,        expected, "la lista  restituita non e' corretta")
示例#2
0
 def do_test(self, fimm,k, expected):
     '''Implementazione del test
         - fimm: il file in cui reperire l'immagine con la griglia
         - k: il lato del quadrati da contare
         - expected: la risposta attesa
     '''
     if DEBUG:
         result = program.es1(fimm, k)
     else:
         with    self.ignored_function('builtins.print'), \
                 self.ignored_function('pprint.pprint'), \
                 self.forbidden_function('builtins.input'), \
                 self.timeout(1), \
                 self.timer(1):
             result   = program.es1(fimm,k)
     self.assertEqual(type(result),  int,     "il risultato prodotto non e' un intero")
     self.assertEqual(result,        expected, "l'intero restituito non e' corretto")
示例#3
0
 def do_test(self, voti, expected):
     '''Implementazione del test
         - voti:     lista di voti
         - expected: lista risultante attesa
     '''
     voti_bis = copy.deepcopy(voti)
     result = program.es1(voti_bis)
     self.check(type(result), list, None, "il risultato non e' una lista")
     self.check(result, expected, None, "il risultato non e' corretto")
     self.check(voti_bis, voti, None, "la lista dei voti non va modificata")
     return 1
示例#4
0
 def do_test(self, lista, expected):
     '''Implementazione del test
         - fimm: il file in cui reperire le stringhe
         - expected: la risposta attesa
         TIMEOUT: 1.5 secondi per ciascun test
     '''
     if DEBUG:
         result = program.es1(lista)
     else:
         with    self.ignored_function('builtins.print'), \
                 self.ignored_function('pprint.pprint'), \
                 self.forbidden_function('builtins.input'), \
                 self.timeout(1.5), \
                 self.timer(1.5):
             result = program.es1(lista)
     self.assertEqual(type(result), int,
                      "il risultato prodotto deve essere un intero")
     self.assertEqual(result, expected,
                      "il valore restituito non e' corretto")
     return 1
 def do_test(self, fimm, expected):
     '''Implementazione del test
         - fimm: il file in cui reperire le stringhe
         - expected: la risposta attesa
         TIMEOUT: 1 secondo per ciascun test
     '''
     with    self.ignored_function('builtins.print'), \
             self.ignored_function('pprint.pprint'), \
             self.forbidden_function('builtins.input'), \
             self.timeout(1), \
             self.timer(1):
         result   = program.es1(fimm,)
     self.assertEqual(type(result),  list,     "il risultato prodotto deve essere una lista")
     self.assertEqual(result,        expected, "la lista restituita non e' corretta")
     return 1