Ejemplo n.º 1
0
 def setUp(self):
     studs = EntityRepository([(1, 'Ratiu Cosmina'), (2, 'Kiraly Alex'),
                               (3, 'Popa Andra'), (4, 'Ocian Eduard'),
                               (5, 'Groza Segiu')])
     discs = EntityRepository([(1, 'Mate'), (2, 'Romana'), (3, 'Engleza')])
     self.__studCtrl = EntityController(studs)
     self.__discCtrl = EntityController(discs)
     enrolled = [(1, 1), (1, 2), (2, 2), (2, 3), (3, 1), (3, 3), (4, 3),
                 (4, 2), (5, 1), (5, 2)]
     grades = [
         Grade(1, 1, 9.8),
         Grade(1, 2, 7.5),
         Grade(2, 2, 6.8),
         Grade(2, 3, 8.8),
         Grade(3, 1, 4.5),
         Grade(3, 3, 7.3),
         Grade(4, 3, 9.6),
         Grade(4, 2, 6),
         Grade(5, 1, 5.5),
         Grade(5, 2, 4.5)
     ]
     self.__grdRepo = GradeRepository(self.__studCtrl.repository,
                                      self.__discCtrl.repository, enrolled,
                                      grades)
     self.__grdCtrl = GradeController(self.__grdRepo)
     self.__undoRepo = UndoRepo()
     self.__undoRepo.save(self.__studCtrl, self.__discCtrl, self.__grdCtrl)
     unittest.TestCase.setUp(self)
Ejemplo n.º 2
0
 def testSave(self):
     studCtrl = EntityController(EntityRepository([]))
     discCtrl = EntityController(EntityRepository([]))
     repo = GradeRepository(studCtrl.repository, discCtrl.repository, [],
                            [])
     grdCtrl = GradeController(repo)
     self.assertEqual(self.__undoRepo.save(studCtrl, discCtrl, grdCtrl),
                      (studCtrl, discCtrl, grdCtrl),
                      'Function save doesn\'t work!')
Ejemplo n.º 3
0
 def setUp(self):
     students = EntityRepository([(1, 'Tania Popescu'), (2, 'Anca Vlad'),
                                  (3, 'Bianca Marculescu')])
     disciplines = EntityRepository([(1, 'Matematica'), (2, 'Romana'),
                                     (3, 'Engleza')])
     self.grade_repo = GradeRepository(students, disciplines,
                                       [(1, 1), (1, 2), (2, 2), (2, 3),
                                        (3, 1), (3, 3)], [
                                            Grade(1, 1, 9.2),
                                            Grade(1, 1, 6.7),
                                            Grade(1, 2, 10),
                                            Grade(1, 2, 9.4),
                                            Grade(2, 2, 7.8),
                                            Grade(3, 1, 5.6),
                                            Grade(3, 3, 4.5),
                                            Grade(3, 3, 7.7)
                                        ])
     unittest.TestCase.setUp(self)
Ejemplo n.º 4
0
 def testRedo(self):
     studCtrl = EntityController(EntityRepository([]))
     discCtrl = EntityController(EntityRepository([]))
     repo = GradeRepository(studCtrl.repository, discCtrl.repository, [],
                            [])
     grdCtrl = GradeController(repo)
     self.__undoRepo.save(studCtrl, discCtrl, grdCtrl)
     self.__undoRepo.undo()
     self.assertEqual(self.__undoRepo.redo(), (studCtrl, discCtrl, grdCtrl),
                      'Function redo doesn\'t work!')
     self.assertRaises(UndoRepositoryException)
Ejemplo n.º 5
0
class TestGradeRepository(unittest.TestCase):
    def setUp(self):
        students = EntityRepository([(1, 'Tania Popescu'), (2, 'Anca Vlad'),
                                     (3, 'Bianca Marculescu')])
        disciplines = EntityRepository([(1, 'Matematica'), (2, 'Romana'),
                                        (3, 'Engleza')])
        self.grade_repo = GradeRepository(students, disciplines,
                                          [(1, 1), (1, 2), (2, 2), (2, 3),
                                           (3, 1), (3, 3)], [
                                               Grade(1, 1, 9.2),
                                               Grade(1, 1, 6.7),
                                               Grade(1, 2, 10),
                                               Grade(1, 2, 9.4),
                                               Grade(2, 2, 7.8),
                                               Grade(3, 1, 5.6),
                                               Grade(3, 3, 4.5),
                                               Grade(3, 3, 7.7)
                                           ])
        unittest.TestCase.setUp(self)

    def tearDown(self):
        unittest.TestCase.tearDown(self)

    def testIsEnrolled(self):
        self.assertEqual(self.grade_repo.isEnrolled(1, 1), True,
                         'Function isEnrolled doesn\'t work!')
        self.assertEqual(self.grade_repo.isEnrolled(3, 2), False,
                         'Function isEnrolled doesn\'t work!')

    def testEnroll(self):
        self.grade_repo.enroll(3, 2)
        self.assertEqual(self.grade_repo.enrolled, [(1, 1), (1, 2), (2, 2),
                                                    (2, 3), (3, 1), (3, 3),
                                                    (3, 2)],
                         'Function enroll doesn\'t work!')
        try:
            self.grade_repo.enroll(4, 1)
            assert False
        except RepositoryException:
            pass
        try:
            self.grade_repo.enroll(2, 5)
            assert False
        except RepositoryException:
            pass
        try:
            self.grade_repo.enroll(1, 1)
            assert False
        except RepositoryException:
            pass

    def testAddGrade(self):
        self.grade_repo.addGrade(2, 3, 8.6)
        self.assertEqual(len(self.grade_repo.grades), 9,
                         'Function addGrade doesn\'t work!')
        try:
            self.grade_repo.addGrade(4, 1, 9.8)
            assert False
        except RepositoryException:
            pass
        try:
            self.grade_repo.addGrade(2, 5, 5.6)
            assert False
        except RepositoryException:
            pass
        try:
            self.grade_repo.addGrade(3, 2, 6)
            assert False
        except RepositoryException:
            pass

    def testRemoveGradeByStudentID(self):
        self.grade_repo.removeGradeByStudentID(1)
        self.assertEqual(len(self.grade_repo.grades), 4,
                         'Function removeGradeByStudentID doesn\'t work!')

    def testRemoveGradeByDisciplineID(self):
        self.grade_repo.removeGradeByDisciplineID(3)
        self.assertEqual(len(self.grade_repo.grades), 6,
                         'Function removeGradeByDisciplineID doesn\'t work!')

    def testSortStudsAlpha(self):
        self.assertEqual(self.grade_repo.sortStudsAlpha(1),
                         [(3, 'Bianca Marculescu'), (1, 'Tania Popescu')],
                         'Function sortStudsAlpha doesn\'t work!')

    def testSortStudsDesc(self):
        self.assertEqual(self.grade_repo.sortStudsDesc(1),
                         [(1, 'Tania Popescu', 7.95),
                          (3, 'Bianca Marculescu', 5.6)],
                         'Function sortStudsDesc doesn\'t work!')

    def testFail(self):
        self.grade_repo.addGrade(3, 1, 3)
        self.assertEqual(self.grade_repo.fail(), [(3, 'Bianca Marculescu')],
                         'Function fail doesn\'t work!')

    def testBest(self):
        self.assertEqual(self.grade_repo.best(),
                         [(1, 'Tania Popescu', 8.82), (2, 'Anca Vlad', 7.8),
                          (3, 'Bianca Marculescu', 5.85)],
                         'Function best doesn\'t work!')

    def testTopDisc(self):
        self.assertEqual(self.grade_repo.topDisc(), [(2, 'Romana', 8.75),
                                                     (1, 'Matematica', 6.78),
                                                     (3, 'Engleza', 6.1)],
                         'Function topDisc doesn\'t work!')

    def testListOfStudEnrolledAt(self):
        self.assertEqual(self.grade_repo.listOfStudEnrolledAt(1), [1, 3],
                         'Function listOfStudEnrolledAt doesn\'t work!')

    def testListOfDisciplinesStudentIsEnrolledAt(self):
        self.assertEqual(
            self.grade_repo.listOfDisciplinesStudentIsEnrolledAt(1), [1, 2],
            'Function listOfDisciplinesStudentIsEnrolledAt doesn\'t work!')

    def testAvg(self):
        self.assertEqual(self.grade_repo.avg(1, 1), 7.95,
                         'Function avg doesn\'t work!')

    def testTotalAvg(self):
        self.assertEqual(self.grade_repo.totalAvg(1), 8.82,
                         'Function totalAvg doesn\'t work!')

    def testAvgByDisciplineID(self):
        self.assertEqual(self.grade_repo.avgByDisciplineID(3), 6.1,
                         'Function avgByDisciplineID doesn\'t work!')
Ejemplo n.º 6
0
# miau1.writeToFile(students)
# miau2 = EntityFileRepository('discipline_file')
# miau2.writeToFile(disciplines)
# miau3 = GradeFileRepository("enrolled_file","grade_file")
# miau3.writeToFile(enrolled, grades)

# miau1 = EntityBinaryFileRepository('students_binary')
# miau1.writeToFile(students)
# miau2 = EntityBinaryFileRepository('discipline_binary')
# miau2.writeToFile(disciplines)
# miau3 = GradeBinaryFileRepository("enrolled_binary","grade_binary")
# miau3.writeToFile(enrolled, grades)
''' in-memory '''
studentRepo = EntityRepository(students)
disciplineRepo = EntityRepository(disciplines)
gradeRepo = GradeRepository(studentRepo, disciplineRepo, enrolled, grades)
''' text file '''
# studentRepo = EntityFileRepository("student_file")
# studentRepo.setEntities(studentRepo.readFromFile())
# disciplineRepo = EntityFileRepository("discipline_file")
# disciplineRepo.setEntities(disciplineRepo.readFromFile())
# gradeRepo = GradeFileRepository("enrolled_file","grade_file")
# gradeRepo.students = EntityRepository(studentRepo.readFromFile())
# gradeRepo.disciplines = EntityRepository(disciplineRepo.readFromFile())
# gradeRepo.enrolled[:] = gradeRepo.readEnrolled()
# # print(gradeRepo.readEnrolled())
# gradeRepo.grades = gradeRepo.readGrades()
''' binary file '''
# studentRepo = EntityBinaryFileRepository('students_binary')
# disciplineRepo = EntityBinaryFileRepository('discipline_binary')
# gradeRepo = GradeBinaryFileRepository('enrolled_binary','grade_binary')