def test_updateProblem():
    pbs = LabProblemInMemoryRepository()
    val = LabProblemValidator()
    pb_service = LabProblemService(pbs, val)

    pb_service.addProblem(21, "fa ceva", 2)
    pb_service.addProblem(1, "nu aia", 2)
    pb_service.addProblem(21, "dada", 5)

    pb_service.updateProblem("21_01", "fa altceva", 4)
    assert pbs.getProblemByNumber("21_01").getDescription() == "fa altceva"
    assert pbs.getProblemByNumber("21_01").getDeadline() == 4

    pb_service.updateProblem("01_01", "da aia", 2)
    assert pbs.getProblemByNumber("01_01").getDescription() == "da aia"

    try:
        pb_service.updateProblem("01_02", "daa", 2)
        assert False
    except ValueError:
        assert True

    try:
        pb_service.updateProblem("1", "neah", 7)
        assert False
    except ValueError:
        assert True
Exemple #2
0
def __main__():
    #student_repo = StudentInMemoryRepository()
    student_repo = StudentFileRepository("students.txt")
    student_val = StudentValidator()
    
    
    #problem_repo = LabProblemInMemoryRepository()
    problem_repo = LabProblemFileRepository("problems.txt")
    problem_val = LabProblemValidator()
    
    
    #mark_repo = MarkInMemoryRepository()
    mark_repo = MarkFileRepository("marks.txt", student_repo, problem_repo)
    mark_val = MarkValidator()
    
    statistics_service = StatisticsService(student_repo, problem_repo, mark_repo, problem_val)
    mark_service = MarkService(mark_repo, student_repo, problem_repo, mark_val)
    student_service = StudentService(student_repo, student_val, mark_repo)
    problem_service = LabProblemService(problem_repo, problem_val, mark_repo)
    
    console = Console(student_service, problem_service, mark_service, statistics_service)
    console.run()
    
    cleanup = CleanUpFile("students.txt", "problems.txt", "marks.txt")
    cleanup.clean()
def test_removeProblem():
    pbs = LabProblemInMemoryRepository()
    val = LabProblemValidator()
    pb_service = LabProblemService(pbs, val)

    pb_service.addProblem(21, "fa ceva", 2)
    pb_service.addProblem(1, "nu aia", 2)
    pb_service.addProblem(21, "dada", 5)

    pb_service.removeProblem("21_01")
    assert pbs.getNumberOfProblems() == 2

    pb_service.removeProblem("21_02")
    assert pbs.getNumberOfProblems() == 1

    try:
        pb_service.removeProblem("02_02")
        assert False
    except ValueError:
        assert True

    try:
        pb_service.removeProblem("1_22")
        assert False
    except ValueError:
        assert True
def test_getStudentWithMostProblemsMarkOver():
    st_repo = StudentInMemoryRepository()
    pb_repo = LabProblemInMemoryRepository()
    mrk_repo = MarkInMemoryRepository()
    pb_val = LabProblemValidator()
    statistics_service = StatisticsService(st_repo, pb_repo, mrk_repo, pb_val)

    st_repo.addStudent(Student("Ana", 21, 0))
    st_repo.addStudent(Student("Ion", 22, 1))
    st_repo.addStudent(Student("Mircea", 21, 2))
    st_repo.addStudent(Student("Ionel", 56, 3))

    pb_repo.addProblem(LabProblem("01_01", "ceva", 3))
    pb_repo.addProblem(LabProblem("03_01", "altceva", 6))
    pb_repo.addProblem(LabProblem("03_05", "mama", 2))
    pb_repo.addProblem(LabProblem("16_01", "dada", 10))

    mrk_repo.addMark(
        Mark(Student("Ana", 21, 0), LabProblem("01_01", "ceva", 3), 8))
    mrk_repo.addMark(
        Mark(Student("Ion", 22, 1), LabProblem("01_01", "ceva", 3), 5))
    mrk_repo.addMark(
        Mark(Student("Ana", 21, 0), LabProblem("16_01", "dada", 10), 8))
    mrk_repo.addMark(
        Mark(Student("Ion", 22, 1), LabProblem("16_01", "dada", 10), 3))
    mrk_repo.addMark(
        Mark(Student("Mircea", 21, 2), LabProblem("01_01", "ceva", 3), 4))
    mrk_repo.addMark(
        Mark(Student("Ionel", 56, 3), LabProblem("03_01", "altceva", 6), 5))

    expected = StudentProblemsDTO(0, "Ana", 2)
    assert statistics_service.getStudentWithMostProblemsMarkOver(5) == expected

    expected = None
    assert statistics_service.getStudentWithMostProblemsMarkOver(9) == expected
Exemple #5
0
    def setUp(self):
        self.pbs = LabProblemInMemoryRepository()
        self.val = LabProblemValidator()
        self.pb_service = LabProblemService(self.pbs, self.val)

        self.pb_service.addProblem(21, "fa ceva", 2)
        self.pb_service.addProblem(1, "nu aia", 2)
        self.pb_service.addProblem(21, "dada", 5)
def test_generateRandomProblems():
    pbs = LabProblemInMemoryRepository()
    val = LabProblemValidator()
    pb_service = LabProblemService(pbs, val)

    pb_service.generateRandomProblems(6)
    assert pbs.getNumberOfProblems() == 6

    pb_service.generateRandomProblems(5)
    assert pbs.getNumberOfProblems() == 11
def test_addProblem():
    pb_repo = LabProblemInMemoryRepository()
    val = LabProblemValidator()
    pb_service = LabProblemService(pb_repo, val)

    pb_service.addProblem(1, "ceva", 2)
    assert pb_repo.getProblemByNumber("01_01").getDescription() == "ceva"

    pb_service.addProblem(1, "altceva", 5)
    assert pb_repo.getProblemByNumber("01_02").getDeadline() == 5

    pb_service.addProblem(4, "ceva1", 2)
    assert pb_repo.getProblemByNumber("04_01").getDescription() == "ceva1"
def test_getProblem():
    pbs = LabProblemInMemoryRepository()
    val = LabProblemValidator()
    pb_service = LabProblemService(pbs, val)

    pb_service.addProblem(21, "fa ceva", 2)
    pb_service.addProblem(1, "nu aia", 2)
    pb_service.addProblem(21, "dada", 5)

    pb = pb_service.getProblemByNumber("01_01")
    assert pb.getDescription() == "nu aia"
    assert pb.getDeadline() == 2

    pb = pb_service.getProblemByNumber("21_01")
    assert pb.getDeadline() == 2

    try:
        pb = pb_service.getProblemByNumber("_2101")
        assert False
    except ValueError:
        assert True
def test_getStudentsForProblem():
    st_repo = StudentInMemoryRepository()
    pb_repo = LabProblemInMemoryRepository()
    mrk_repo = MarkInMemoryRepository()
    pb_val = LabProblemValidator()
    statistics_service = StatisticsService(st_repo, pb_repo, mrk_repo, pb_val)

    st_repo.addStudent(Student("Ana", 21, 0))
    st_repo.addStudent(Student("Ion", 22, 1))
    st_repo.addStudent(Student("Mircea", 21, 2))
    st_repo.addStudent(Student("Pas", 56, 3))

    pb_repo.addProblem(LabProblem("01_01", "ceva", 3))
    pb_repo.addProblem(LabProblem("03_01", "altceva", 6))
    pb_repo.addProblem(LabProblem("03_05", "mama", 2))
    pb_repo.addProblem(LabProblem("16_01", "dada", 10))

    mrk_repo.addMark(
        Mark(Student("Ana", 21, 0), LabProblem("01_01", "ceva", 3), 8))
    mrk_repo.addMark(
        Mark(Student("Ion", 22, 1), LabProblem("01_01", "ceva", 3), 5))
    mrk_repo.addMark(
        Mark(Student("Ana", 21, 0), LabProblem("16_01", "dada", 10), 9))
    mrk_repo.addMark(
        Mark(Student("Ion", 22, 1), LabProblem("16_01", "dada", 10), 3))
    mrk_repo.addMark(
        Mark(Student("Mircea", 21, 2), LabProblem("01_01", "ceva", 3), 4))
    mrk_repo.addMark(
        Mark(Student("Ionel", 56, 3), LabProblem("03_01", "altceva", 6), 5))

    assert statistics_service.getStudentsForProblemRecursive("01_01") == [
        StudentMarkDTO(mrk_repo.getMarkById("0_01_01")),
        StudentMarkDTO(mrk_repo.getMarkById("1_01_01")),
        StudentMarkDTO(mrk_repo.getMarkById("2_01_01"))
    ]
    try:
        statistics_service.getStudentsForProblemRecursive("02_04")
        assert False
    except ValueError:
        assert True
def test_getStudentsWithMarksUnder5():
    st_repo = StudentInMemoryRepository()
    pb_repo = LabProblemInMemoryRepository()
    mrk_repo = MarkInMemoryRepository()
    pb_val = LabProblemValidator()
    statistics_service = StatisticsService(st_repo, pb_repo, mrk_repo, pb_val)

    st_repo.addStudent(Student("Ana", 21, 0))
    st_repo.addStudent(Student("Ion", 22, 1))
    st_repo.addStudent(Student("Mircea", 21, 2))
    st_repo.addStudent(Student("Pas", 56, 3))

    pb_repo.addProblem(LabProblem("01_01", "ceva", 3))
    pb_repo.addProblem(LabProblem("03_01", "altceva", 6))
    pb_repo.addProblem(LabProblem("03_05", "mama", 2))
    pb_repo.addProblem(LabProblem("16_01", "dada", 10))

    mrk_repo.addMark(
        Mark(Student("Ana", 21, 0), LabProblem("01_01", "ceva", 3), 8))
    mrk_repo.addMark(
        Mark(Student("Ion", 22, 1), LabProblem("01_01", "ceva", 3), 5))
    mrk_repo.addMark(
        Mark(Student("Ana", 21, 0), LabProblem("16_01", "dada", 10), 9))
    mrk_repo.addMark(
        Mark(Student("Ion", 22, 1), LabProblem("16_01", "dada", 10), 3))
    mrk_repo.addMark(
        Mark(Student("Mircea", 21, 2), LabProblem("01_01", "ceva", 3), 4))
    mrk_repo.addMark(
        Mark(Student("Ionel", 56, 3), LabProblem("03_01", "altceva", 6), 5))

    assert statistics_service.getStudentsWithMarksUnder5Recursive() == [
        StudentMarkDTO(
            Mark(st_repo.getStudentById(1), LabProblem("", "", 0), 4.0)),
        StudentMarkDTO(
            Mark(st_repo.getStudentById(2), LabProblem("", "", 0), 4.0))
    ]