Exemple #1
0
    def test_Fstergere_asignare(self):
        # White-box testing pentru stergerea asignarilor din repository.

        p4 = Problema(1, 7, "Programare dinamica",
                      repo_problema.Data("06.07.2021"))
        p5 = Problema(2, 3, "Management baza de date",
                      repo_problema.Data("02.12.2020"))
        p6 = Problema(4, 1, "Cont bancar", repo_problema.Data("09.01.2021"))

        d4, d5 = repo_problema.Data("06.07.2021"), repo_problema.Data(
            "02.12.2020")
        d6 = repo_problema.Data("09.01.2021")

        repo_asignare.lista_asignari.stergere_asignare_file(p4, 0)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(30, "Marin Stefania", 717),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(4, 1, "Cont bancar", d6))
        ]

        repo_asignare.lista_asignari.stergere_asignare_file(p5, 0)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(4, 1, "Cont bancar", d6))
        ]

        repo_asignare.lista_asignari.stergere_asignare_file(p6, 0)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == []
    def readFromFile(self):
        content = []
        file = open(self.__path, "r")

        line = file.readline()
        while line:
            line = line.strip()
            param = line.split("; ")

            if len(param) == 3:
                student = param[0].split(", ")
                problema = param[1].split(", ")
                nota = param[2]

                asignare = Asignare(
                    Student(int(student[0]), student[1], int(student[2])),
                    Problema(int(problema[0]), int(problema[1]), problema[2],
                             Data(problema[3])))

                asignare.set_nota(int(nota))

                content.append(asignare)

            line = file.readline()

        file.close()
        return content
    def test_getters_asignare(self):
        # White-box testing: testez toate ramurile pentru getteri
        # (student, problema, nota si asignarea sub forma de tuple).

        s1, p1 = Student(1, "Pop Ion", 213), Problema(1, 1, "Cont bancar", "20.12.2020")
        a1 = Asignare(s1, p1)

        assert a1.get_nota() == 0
        assert a1.get_student() == Student(1, "Pop Ion", 213)
        assert a1.get_problema() == Problema(1, 1, "Cont bancar", "20.12.2020")

        a1.set_nota(9)
        assert a1.get_nota() == 9

        assert a1.get_asignare_tuple() == (Student(1, "Pop Ion", 213), Problema(1, 1, "Cont bancar", "20.12.2020"))
Exemple #4
0
    def test_Aadaugare_asignare(self):
        # White-box testing pentru adaugarea asignarilor in repository.

        repo_asignare.lista_asignari.adaugare_asignare_file(self.a1)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(1, 1, 'Management baza de date', dl1))
        ]

        repo_asignare.lista_asignari.adaugare_asignare_file(self.a2)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(1, 1, 'Management baza de date', dl1)),
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(3, 1, 'Cheltuieli de familie', dl2))
        ]

        repo_asignare.lista_asignari.adaugare_asignare_file(self.a3)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(1, 1, 'Management baza de date', dl1)),
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(3, 1, 'Cheltuieli de familie', dl2)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(3, 1, 'Cheltuieli de familie', dl3))
        ]

        repo_asignare.lista_asignari.adaugare_asignare_file(self.a4)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(1, 1, 'Management baza de date', dl1)),
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(3, 1, 'Cheltuieli de familie', dl2)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(3, 1, 'Cheltuieli de familie', dl3)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(2, 1, 'Cheltuieli service auto', dl4))
        ]
Exemple #5
0
    def setUp(self):
        student1 = Student(15, "Pop Ion", 213)
        student2 = Student(3, "Alexandrescu Mihai", 917)
        student3 = Student(5, "Ionescu Malina", 316)

        new_content = [student1, student2, student3]
        repo_student.lista_stud.set_content(new_content)

        problema1 = Problema(1, 1, "Management baza de date", dl1)
        problema2 = Problema(3, 1, "Cheltuieli de familie", dl2)
        problema3 = Problema(2, 1, "Cheltuieli service auto", dl3)
        problema4 = Problema(1, 3, "Baza de date studenti", dl4)

        new_content = [problema1, problema2, problema3, problema4]
        repo_problema.lista_prob.set_content(new_content)

        self.a1 = Asignare(repo_student.lista_stud.get_content()[0],
                           repo_problema.lista_prob.get_content()[0])
        self.a2 = Asignare(repo_student.lista_stud.get_content()[0],
                           repo_problema.lista_prob.get_content()[1])
        self.a3 = Asignare(repo_student.lista_stud.get_content()[1],
                           repo_problema.lista_prob.get_content()[1])
        self.a4 = Asignare(repo_student.lista_stud.get_content()[1],
                           repo_problema.lista_prob.get_content()[2])
    def setUp(self):
        self.__a1 = Asignare(Student(1, "Farcasanu Stefan", 213),
                             Problema(1, 1, "Biblioteca", Data("05.04.2021")))
        self.__a2 = Asignare(Student(2, "Dina Andrei-Const", 213),
                             Problema(1, 1, "Biblioteca", Data("05.04.2021")))
        self.__a3 = Asignare(Student(3, "Dretcanu Mihai", 917),
                             Problema(1, 2, "Cinema", Data("18.12.2020")))
        self.__a4 = Asignare(Student(4, "Dretcanu Mihai", 313),
                             Problema(1, 2, "Cinema", Data("18.12.2020")))

        self.__a1.set_nota(6)
        self.__a2.set_nota(6)
        self.__a3.set_nota(10)
        self.__a4.set_nota(9)

        self.__d1 = [213, 2]
        self.__d2 = [313, 1]
    def srv_asignare_problema(self, student, intrare):
        """
        Functia primeste studentul deja validat si datele problemei ce trebuie sa ii fie asignata. Functia va asigura
        validitatea datelor problemei si va trimite in repo studentul si problema pentru asignare.

        :param student: Studentul caruia trebuie sa ii fie asignata problema.
        :param intrare: Un sir de caractere ce ar trebui sa reprezinte nr. laboratorului si al problemei ce trebuie
        asignata.
        """

        validator_problema = ValidatorProblema()
        try:
            validator_problema.validare_cautare_problema(intrare)

            param = intrare.split(" ")
            nr_lab, nr_prob = int(param[0]), int(param[1])

            index_problema_gasita = repo_problema.lista_prob.cautare_problema(
                len(repo_problema.lista_prob.get_content()) - 1, nr_lab,
                nr_prob)

            problema = repo_problema.lista_prob.get_content(
            )[index_problema_gasita]

            repo.lista_asignari.validare_asignare_problema(student, problema)

            asignare = Asignare(student, problema)
            repo.lista_asignari.adaugare_asignare_file(asignare)

        except NrLabError:
            raise NrLabError(
                "Numarul laboratorului introdus este invalid! Introduceti alte date de intrare:"
            )

        except NrProbError:
            raise NrProbError(
                "Numarul problemei introduse este invalid! Introduceti alte date de intrare:"
            )

        except ParamError:
            raise ParamError(
                "Nu s-au introdus doua numere! Introduceti alte date de intrare:"
            )

        except UnicitateAsignareError:
            raise UnicitateAsignareError(
                "Problema aceasta este deja asignata! Introduceti alte date de intrare:"
            )
Exemple #8
0
    def test_Dmodificare_asignare(self):
        # White-box testing pentru modificarea asignarilor din repository.

        p1, d1 = repo_problema.lista_prob.get_content(
        )[0], repo_problema.lista_prob.get_content()[0].get_deadline
        p2, d2 = repo_problema.lista_prob.get_content(
        )[1], repo_problema.lista_prob.get_content()[1].get_deadline
        p3, d3 = repo_problema.lista_prob.get_content(
        )[2], repo_problema.lista_prob.get_content()[2].get_deadline

        d4, d5 = repo_problema.Data("06.07.2021"), repo_problema.Data(
            "02.12.2020")
        d6 = repo_problema.Data("09.01.2021")

        p4 = Problema(1, 7, "Programare dinamica", d4)
        p5 = Problema(2, 3, "Management baza de date", d5)
        p6 = Problema(4, 1, "Cont bancar", d6)

        repo_asignare.lista_asignari.modificare_asignare_file(p1, p4, 0)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(1, 7, 'Programare dinamica', d4)),
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(3, 1, 'Cheltuieli de familie', d2)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(3, 1, 'Cheltuieli de familie', d2)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(2, 1, 'Cheltuieli service auto', d3))
        ]

        repo_asignare.lista_asignari.modificare_asignare_file(p2, p5, 0)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(1, 7, 'Programare dinamica', d4)),
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(2, 1, 'Cheltuieli service auto', d3))
        ]

        repo_asignare.lista_asignari.modificare_asignare_file(p3, p6, 0)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(1, 7, 'Programare dinamica', d4)),
            Asignare(Student(15, 'Pop Ion', 213),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(4, 1, "Cont bancar", d6))
        ]

        s1 = repo_student.lista_stud.get_content()[0]
        s4 = Student(30, "Marin Stefania", 717)

        repo_asignare.lista_asignari.modificare_asignare_file(s1, s4, 1)
        content = repo_asignare.lista_asignari.readFromFile()
        assert content == [
            Asignare(Student(30, "Marin Stefania", 717),
                     Problema(1, 7, 'Programare dinamica', d4)),
            Asignare(Student(30, "Marin Stefania", 717),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(2, 3, "Management baza de date", d5)),
            Asignare(Student(3, 'Alexandrescu Mihai', 917),
                     Problema(4, 1, "Cont bancar", d6))
        ]
class TestUtils(unittest.TestCase):
    def setUp(self):
        self.__a1 = Asignare(Student(1, "Farcasanu Stefan", 213),
                             Problema(1, 1, "Biblioteca", Data("05.04.2021")))
        self.__a2 = Asignare(Student(2, "Dina Andrei-Const", 213),
                             Problema(1, 1, "Biblioteca", Data("05.04.2021")))
        self.__a3 = Asignare(Student(3, "Dretcanu Mihai", 917),
                             Problema(1, 2, "Cinema", Data("18.12.2020")))
        self.__a4 = Asignare(Student(4, "Dretcanu Mihai", 313),
                             Problema(1, 2, "Cinema", Data("18.12.2020")))

        self.__a1.set_nota(6)
        self.__a2.set_nota(6)
        self.__a3.set_nota(10)
        self.__a4.set_nota(9)

        self.__d1 = [213, 2]
        self.__d2 = [313, 1]

    def tearDown(self):
        pass

    def test_qSort_generic(self):
        lista = [self.__a1, self.__a2, self.__a3]
        lista_ordonata = qSort_generic(lista, cmp_generic_nume, True)
        assert lista_ordonata == [self.__a1, self.__a3, self.__a2]

        lista = [self.__a3, self.__a1, self.__a2]
        lista_ordonata = qSort_generic(lista, cmp_generic_nota, True)
        assert lista_ordonata == [self.__a3, self.__a2, self.__a1]

        lista = [self.__a3, self.__a2, self.__a1]
        lista_ordonata = qSort_generic(lista, cmp_generic_nota, False)
        assert lista_ordonata == [self.__a1, self.__a2, self.__a3]

        lista = [self.__a2, self.__a1, self.__a3]
        lista_ordonata = qSort_generic(lista, cmp_generic_nume, False)
        assert lista_ordonata == [self.__a2, self.__a3, self.__a1]

        lista = [self.__d1, self.__d2]
        lista_ordonata = qSort_generic(lista, cmp_generic_nr_probleme, False)
        assert lista_ordonata == [self.__d2, self.__d1]

        lista = [self.__d2, self.__d1]
        lista_ordonata = qSort_generic(lista, cmp_generic_nr_probleme, True)
        assert lista_ordonata == [self.__d1, self.__d2]

    def test_qSort_generic_nou(self):
        lista = [self.__a1, self.__a2, self.__a3, self.__a4]
        lista_ordonata = qSort_generic_nou(lista, cmp_generic_nume,
                                           cmp_generic_nota, True)
        assert lista_ordonata == [self.__a1, self.__a3, self.__a4, self.__a2]

        lista = [self.__a4, self.__a2, self.__a3, self.__a1]
        lista_ordonata = qSort_generic_nou(lista, cmp_generic_nota,
                                           cmp_generic_nume, True)
        assert lista_ordonata == [self.__a3, self.__a4, self.__a1, self.__a2]

        lista = [self.__a2, self.__a4, self.__a3, self.__a1]
        lista_ordonata = qSort_generic_nou(lista, cmp_generic_nota,
                                           cmp_generic_nume, False)
        assert lista_ordonata == [self.__a2, self.__a1, self.__a4, self.__a3]

        lista = [self.__a1, self.__a3, self.__a2, self.__a4]
        lista_ordonata = qSort_generic_nou(lista, cmp_generic_nume,
                                           cmp_generic_nota, False)
        assert lista_ordonata == [self.__a2, self.__a4, self.__a3, self.__a1]

    def test_gnome_sort_generic(self):
        lista = [self.__a1, self.__a2, self.__a3]
        lista_ordonata = gnome_sort_generic(lista, cmp_generic_nume, True)
        assert lista_ordonata == [self.__a1, self.__a3, self.__a2]

        lista = [self.__a1, self.__a3, self.__a2]
        lista_ordonata = gnome_sort_generic(lista, cmp_generic_nota, True)
        assert lista_ordonata == [self.__a3, self.__a1, self.__a2]

        lista = [self.__a3, self.__a2, self.__a1]
        lista_ordonata = gnome_sort_generic(lista, cmp_generic_nota, False)
        assert lista_ordonata == [self.__a2, self.__a1, self.__a3]

        lista = [self.__a2, self.__a1, self.__a3]
        lista_ordonata = gnome_sort_generic(lista, cmp_generic_nume, False)
        assert lista_ordonata == [self.__a2, self.__a3, self.__a1]

        lista = [self.__d1, self.__d2]
        lista_ordonata = gnome_sort_generic(lista, cmp_generic_nr_probleme,
                                            False)
        assert lista_ordonata == [self.__d2, self.__d1]

        lista = [self.__d2, self.__d1]
        lista_ordonata = gnome_sort_generic(lista, cmp_generic_nr_probleme,
                                            True)
        assert lista_ordonata == [self.__d1, self.__d2]

    def test_gnome_sort_generic_nou(self):
        lista = [self.__a1, self.__a2, self.__a3, self.__a4]
        lista_ordonata = gnome_sort_generic_nou(lista, cmp_generic_nume,
                                                cmp_generic_nota, True)
        assert lista_ordonata == [self.__a1, self.__a3, self.__a4, self.__a2]

        lista = [self.__a4, self.__a2, self.__a3, self.__a1]
        lista_ordonata = gnome_sort_generic_nou(lista, cmp_generic_nota,
                                                cmp_generic_nume, True)
        assert lista_ordonata == [self.__a3, self.__a4, self.__a1, self.__a2]

        lista = [self.__a2, self.__a4, self.__a3, self.__a1]
        lista_ordonata = gnome_sort_generic_nou(lista, cmp_generic_nota,
                                                cmp_generic_nume, False)
        assert lista_ordonata == [self.__a2, self.__a1, self.__a4, self.__a3]

        lista = [self.__a1, self.__a3, self.__a2, self.__a4]
        lista_ordonata = gnome_sort_generic_nou(lista, cmp_generic_nume,
                                                cmp_generic_nota, False)
        assert lista_ordonata == [self.__a2, self.__a4, self.__a3, self.__a1]
    def test_setters_asignare(self):
        # White-box testing: testez toate ramurile pentru setteri, dar si pentru getteri
        # (student, problema si nota).

        s1, p1 = Student(1, "Pop Ion", 213), Problema(1, 1, "Cont bancar", "20.12.2020")
        nota = 7
        a1 = Asignare(0, 0)

        a1.set_nota(nota)
        assert a1.get_nota() == 7

        a1.set_student(s1)
        assert a1.get_student() == Student(1, "Pop Ion", 213)

        a1.set_problema(p1)
        assert a1.get_problema() == Problema(1, 1, "Cont bancar", "20.12.2020")