Example #1
0
    def test_badCase2(self):
        #initialisation
        b = r(0,5)*[0]
        b0 = len(b)*[0]
        for i in range(len(b)):
            b[i] = r(0,100)
            b0[i] = b[i]
        a = r(6,10)*[0]
        a0 = len(a)*[0]
        for i in range(len(a)):
            a[i] = r(0,100)
            a0[i] = a[i]
        #execution + gestion fichier-out
        orig = sys.stdout
        with open('redirect_student.txt', 'w') as f:
            sys.stdout = f
            q.inverse(a, b)
        sys.stdout = orig
        #verification
        n = 0
        with open('redirect_student.txt', 'r') as f:
            for line in f:
                n += 1
        if n>1:
            self.fail(_("Votre code affiche plus que 1 ligne d'erreur quand la longueur de b est inférieur à celle de a."))

        if n==0:
            self.fail(_("Votre code n´affiche pas de ligne d'erreur quand la longueur de b est inférieur à celle de a."))
Example #2
0
    def test_caseEmpty(self):
        #initialisation
        a = []
        b = []
        #execution + gestion du fichier-out
        orig = sys.stdout
        res = "A = \n\nB = \n"
        with open('redirect_corr.txt', 'w') as f:
            sys.stdout = f
            corr.inverse(a, b)

        with open('redirect_student.txt', 'w') as f:
            sys.stdout = f
            q.inverse(a, b)
        #res = "A = \n\nB = \n\n"
        with open('redirect_corr.txt', 'r') as f:
            res = f.read()
        txt = ""
        with open('redirect_student.txt', 'r') as f:
            txt = f.read()
        sys.stdout = orig
        #verification
        if len(a)!=0 or len(b)!=0:
            self.fail(_("Votre methode 'inverse()' modifie la taille des tableaux.\n Tableaux finaux: a = "+str(a)+" b = "+str(b)))

        self.assertTrue(filecmp.cmp('redirect_corr.txt','redirect_student.txt',False),_("Votre code n´affiche pas le resultat attendu pour 2 tableaux vides.\nAttendu:\n"+res+"Reçu:\n"+txt+"'Attention:' a la fin de chaque ligne non vide affiché, il doit y avoir un 'espace' et un 'retour à la ligne'.\n Hint: Dans tous les cas il y aura 4 sur la sortie standard."))
Example #3
0
    def test_normalCase(self):
        #initialisation
        a = r(0,12)*[0]
        a0 = len(a)*[0]
        for i in range(len(a)):
            a[i] = r(0,100)
            a0[i] = a[i]
        b = len(a)*[0]
        b0 = len(b)*[0]
        for i in range(len(b)):
            b[i] = r(0,100)
            b0[i] = b[i]
        #execution + gestion du fichier-out
        #creation du resultat
        res = "A = \n"
        for i in range(len(b0)):
            res = res+str(b0[i])+" "
        res += "\n"
        res += "B = \n"
        for i in range(len(a0)):
            res = res+str(a0[i])+" "
        res = res+"\n"

        orig = sys.stdout
        with open('redirect_corr.txt', 'w') as f:
            f.write(res)

        with open('redirect_student.txt', 'w') as f:
            sys.stdout = f
            q.inverse(a, b)
        txt = ""
        with open('redirect_student.txt', 'r') as f:
            txt = f.read()
        sys.stdout = orig
        #verification
        if len(a)!=len(b0) or len(b)!=len(a0):
            self.fail(_("Votre methode 'inverse()' modifie la taille des tableaux.\n Taille initiale : "+str(len(a0))+" | Taille reçu:\n Pour a: "+str(len(a))+"\nPour b: "+str(len(b))))
        
        self.assertTrue(filecmp.cmp('redirect_corr.txt','redirect_student.txt',False),_("Votre code n'affiche pas le resultat attendu pour a = "+str(a0)+" b = "+str(b0)+" .\nAttendu:\n"+res+"Reçu:\n"+txt+"'Attention:' a la fin de chaque ligne non vide affiché, il doit y avoir un 'espace' et un 'retour à la ligne'."))
Example #4
0
 def test_arg(self):
     try:
         q.inverse([1,2,3], [4,5,6])
     except:
         self.fail(_("La methode 'inverse()' n´est pas bien définie.(A t´elle le bon nombre d'argument ?"))
Example #5
0
#!/usr/bin/python3
# -*- coding: utf-8 -*-

import unittest
import q
from CorrQ import *
import random as rd
rd.seed(2019)

#Correct solution
L = [rd.randint(1, 100) for i in range(20)]
ans = inverse(L)
student = q.inverse(L)


class TestInverse(unittest.TestCase):
    def test_exist_inverse(self):
        self.assertTrue(
            hasattr(q, 'inverse'),
            "@1@: " + _("You did not name the method as expected."))

    def test_inverse(self):
        for i in range(len(ans)):
            self.assertEqual(
                ans[i], student[i],
                "@1@: Il y a un problème dans la fonction inverse()")


if __name__ == '__main__':
    unittest.main()