def generate_students(number_of_students=None): if number_of_students is None: number_of_students = random.randint(1, School.MAX_STUDENTS_NUMBER) students = [] for student_number in range(number_of_students): first_name, last_name = generate_random_name() student = Student(first_name, last_name) students.append(student) subjects = ["Matematyka", "Fizyka", "Biologia", "Chemia", "Historia"] for subject in subjects: final_grade = random.randint(MIN_RANDOM_GRADE, MAX_RANDOM_GRADE) student.add_final_grade(final_grade, subject) return students
def generate_students(number_of_students=None): if number_of_students is None: number_of_students = random.randint(1, School.MAX_STUDENTS_NUMBER) students = [] for student_number in range(number_of_students): first_name = f"Student-{student_number +1}" last_name = "Smith" student = Student(first_name, last_name) students.append(student) for _ in range(Config.RANDOM_FINAL_GRADES_NUMBER): final_grade = random.randint(Config.MIN_RANDOM_GRADE, Config.MAX_RANDOM_GRADE) student.add_final_grade(final_grade) return students
def create_school_with_students(cls, school_name): number_of_students = random.randint(1, cls.MAX_STUDENTS_NUMBER) school = School(school_name, students=[]) for student_number in range(number_of_students): first_name = f"Student-{student_number}" last_name = "Smith" student = Student(first_name, last_name) school.assign_student(student) for _ in range(Config.RANDOM_FINAL_GRADES_NUMBER): final_grade = random.randint(Config.MIN_RANDOM_GRADE, Config.MAX_RANDOM_GRADE) student.add_final_grade(final_grade) return school
def generate_students(self): students = [] for student_number in range(self.number_of_students): first_name = f"Student-{student_number}" last_name = "Smith" student = Student(first_name, last_name) students.append(student) subjects = [ "Matematyka", "Fizyka", "Biologia", "Chemia", "Historia" ] for subject in subjects: final_grade = random.randint(Config.MIN_RANDOM_GRADE, Config.MAX_RANDOM_GRADE) student.add_final_grade(final_grade, subject) return students
def generate_students(self): if self.min_grade is None or self.max_grade is None: return "ERROR" students = [] for student_number in range(self.number_of_students): first_name = f"Student-{student_number}" last_name = "Smith" student = Student(first_name, last_name) students.append(student) subjects = [ "Matematyka", "Fizyka", "Biologia", "Chemia", "Historia" ] for subject in subjects: final_grade = random.randint(self.min_grade, self.max_grade) student.add_final_grade(final_grade, subject) return students
def test_add_final_grades(): parameters = [ (5, "Matematyka", None, True), (5, "Historia", None, True), (1, "Matematyka", None, True), (5, "Matematyka", GradeCalculator.normal_promotion_policy, True), (2, "Matematyka", GradeCalculator.strict_promotion_policy, False), ] for params in parameters: grade, subject, promotion_policy, promoted = params student = Student("Bob", "Kowalski") student.add_final_grade(grade, subject, promotion_policy) if student.promoted == promoted: print("OK") else: print(f"Błąd! Dla parametrów: {params} wynik promocji to {student.promoted} zamiast {promoted}")