/// <summary> /// Initializes a new instance of the <see cref="StudentCourseEvaluation" /> class. /// </summary> /// <param name="student">The student.</param> /// <param name="evaluation">The evaluation.</param> /// <exception cref="System.ArgumentNullException">if student is null.</exception> public StudentCourseEvaluation(Student student, CourseEvaluation evaluation = null) { if (student == null) throw new ArgumentNullException("student"); this.Student = student; this.Evaluation = evaluation ?? new CourseEvaluation(); }
/// <summary> /// Initializes a new instance of the <see cref="StudentCourseEvaluation" /> class. /// </summary> /// <param name="student">The student.</param> /// <param name="evaluation">The evaluation.</param> /// <exception cref="System.ArgumentNullException">if student is null.</exception> public StudentCourseEvaluation(Student student, CourseEvaluation evaluation = null) { if (student == null) { throw new ArgumentNullException("student"); } this.Student = student; this.Evaluation = evaluation ?? new CourseEvaluation(); }
public void TestConstruction() { var eval = new CourseEvaluation(this.Definition); Assert.AreEqual(this.Definition, eval.EvaluationDefinitions); Assert.AreEqual(this.Definition.Count, eval.Evaluations.Count); for (int i = 0; i < this.Definition.Count; i++) { Assert.AreEqual(this.Definition[i], eval.Evaluations[i].Definition); } }
/// <summary> /// Initializes a new instance of the <see cref="StudentCourseEvaluation" /> class. /// </summary> /// <param name="studentPersonalNumber">The student personal number.</param> /// <param name="studentFirstName">First name of the student.</param> /// <param name="studentSurname">The student surname.</param> /// <param name="evaluation">The evaluation.</param> /// <exception cref="System.ArgumentNullException">if studentPersonalNumber, studentFirstName or studentSurname is null.</exception> public StudentCourseEvaluation(string studentPersonalNumber, string studentFirstName, string studentSurname, CourseEvaluation evaluation = null) { if (studentPersonalNumber == null) throw new ArgumentNullException("studentPersonalNumber"); if (studentFirstName == null) throw new ArgumentNullException("studentFirstName"); if (studentSurname == null) throw new ArgumentNullException("studentSurname"); this.Student = new Student(studentPersonalNumber, studentFirstName, studentSurname); this.Evaluation = evaluation ?? new CourseEvaluation(); }
/// <summary> /// Initializes a new instance of the <see cref="StudentCourseEvaluation" /> class. /// </summary> /// <param name="student">The student.</param> /// <param name="evalDefinition">The eval definition.</param> /// <exception cref="System.ArgumentNullException">if student is null.</exception> public StudentCourseEvaluation(Student student, EvaluationDefinitionCollection evalDefinition) { if (student == null) { throw new ArgumentNullException("student"); } if (evalDefinition == null) { throw new ArgumentNullException("evalDefinition"); } this.Student = student; this.Evaluation = new CourseEvaluation(evalDefinition); }
/// <summary> /// Initializes a new instance of the <see cref="StudentCourseEvaluation" /> class. /// </summary> /// <param name="studentPersonalNumber">The student personal number.</param> /// <param name="studentFirstName">First name of the student.</param> /// <param name="studentSurname">The student surname.</param> /// <param name="evaluation">The evaluation.</param> /// <exception cref="System.ArgumentNullException">if studentPersonalNumber, studentFirstName or studentSurname is null.</exception> public StudentCourseEvaluation(string studentPersonalNumber, string studentFirstName, string studentSurname, CourseEvaluation evaluation = null) { if (studentPersonalNumber == null) { throw new ArgumentNullException("studentPersonalNumber"); } if (studentFirstName == null) { throw new ArgumentNullException("studentFirstName"); } if (studentSurname == null) { throw new ArgumentNullException("studentSurname"); } this.Student = new Student(studentPersonalNumber, studentFirstName, studentSurname); this.Evaluation = evaluation ?? new CourseEvaluation(); }
/// <summary> /// Initializes a new instance of the <see cref="StudentCourseEvaluation" /> class. /// </summary> /// <param name="studentPersonalNumber">The student personal number.</param> /// <param name="studentFirstName">First name of the student.</param> /// <param name="studentSurname">The student surname.</param> /// <param name="evalDefinition">The eval definition.</param> /// <exception cref="System.ArgumentNullException">if studentPersonalNumber, studentFirstName, studentSurname or evalDefinition is null.</exception> public StudentCourseEvaluation(string studentPersonalNumber, string studentFirstName, string studentSurname, EvaluationDefinitionCollection evalDefinition) { if (studentPersonalNumber == null) { throw new ArgumentNullException("studentPersonalNumber"); } if (studentFirstName == null) { throw new ArgumentNullException("studentFirstName"); } if (studentSurname == null) { throw new ArgumentNullException("studentSurname"); } if (evalDefinition == null) { throw new ArgumentNullException("evalDefinition"); } this.Student = new Student(studentPersonalNumber, studentFirstName, studentSurname); this.Evaluation = new CourseEvaluation(evalDefinition); }
public void TestConstructionWithNull() { var eval = new CourseEvaluation(null); Assert.Fail("CourseEvaluation should throw exception if the definition is null"); }
public void TestConstructionWithEmptyDefinition() { var eval = new CourseEvaluation(); Assert.AreEqual(null, eval.GetTotalPoints()); Assert.AreEqual(null, eval.GetTotalPointsReason()); }
public void TestModyfingDefinition() { //Add some value var eval = new CourseEvaluation(this.Definition); eval.Evaluations[0].Value.Points = 11; //A - 10-20 eval.Evaluations[1].Value.Points = 11; //B - 5-10 eval.Evaluations[1].Value.Reason = "Reason1"; eval.Evaluations[2].Value.Points = 11; //C - <=20 eval.Evaluations[3].Value.Points = 9; //D - >=10 eval.Evaluations[3].Value.Reason = "Reason2"; eval.Evaluations[4].Value.Points = 10; //E - nothing Assert.AreEqual("A [10-20b]: 11b, B [5-10b]: 11b (Reason1), C [max 20b]: 11b, D [min 10b]: 9b (Reason2), E: 10b", eval.GetTotalPointsReason()); eval.Evaluations[3].Definition.Name = "F"; Assert.AreEqual("A [10-20b]: 11b, B [5-10b]: 11b (Reason1), C [max 20b]: 11b, F [min 10b]: 9b (Reason2), E: 10b", eval.GetTotalPointsReason()); this.Definition.Move(4, 3); Assert.AreEqual("A [10-20b]: 11b, B [5-10b]: 11b (Reason1), C [max 20b]: 11b, E: 10b, F [min 10b]: 9b (Reason2)", eval.GetTotalPointsReason()); this.Definition.RemoveAt(1); Assert.AreEqual("A [10-20b]: 11b, C [max 20b]: 11b, E: 10b, F [min 10b]: 9b (Reason2)", eval.GetTotalPointsReason()); this.Definition.Add(new EvaluationDefinition() { Name = "G", MaxPoints = 20, } ); Assert.AreEqual(5, eval.Evaluations.Count); eval.Evaluations[4].Value.Points = 18; //G - <= 20 Assert.AreEqual("A [10-20b]: 11b, C [max 20b]: 11b, E: 10b, F [min 10b]: 9b (Reason2), G [max 20b]: 18b", eval.GetTotalPointsReason()); this.Definition.Insert(1, new EvaluationDefinition() { Name = "B", } ); Assert.AreEqual(6, eval.Evaluations.Count); eval.Evaluations[1].Value.Points = 15; //B - nothing Assert.AreEqual("A [10-20b]: 11b, B: 15b, C [max 20b]: 11b, E: 10b, F [min 10b]: 9b (Reason2), G [max 20b]: 18b", eval.GetTotalPointsReason()); this.Definition[0] = new EvaluationDefinition() { Name = "AR", }; Assert.AreEqual("AR: 11b, B: 15b, C [max 20b]: 11b, E: 10b, F [min 10b]: 9b (Reason2), G [max 20b]: 18b", eval.GetTotalPointsReason()); decimal? sum = 11 + 15 + 11 + 10 + 9 + 18; Assert.AreEqual(sum, eval.GetTotalPoints()); this.Definition.Clear(); Assert.AreEqual(0, eval.Evaluations.Count); Assert.AreEqual(null, eval.GetTotalPointsReason()); this.Definition.Add(new EvaluationDefinition() { Name = "A", } ); Assert.AreEqual(1, eval.Evaluations.Count); eval.Evaluations[0].Value.Points = 10; //A - nothing Assert.AreEqual("A: 10b", eval.GetTotalPointsReason()); }
public void TestModifyingValues() { if (this.Definition.Count != 5) { Assert.Inconclusive("Test corrupted! Definition is in an unexpected state."); return; } var eval = new CourseEvaluation(this.Definition); var col = new List<Evaluation>(eval.GetAllEvaluations()); Assert.AreEqual(5, col.Count, "GetAllEvaluations [Init]."); for (int i = 0; i < 5; i++) { Assert.AreEqual(this.Definition[i], col[i].Definition); } col = new List<Evaluation>(eval.GetValidEvaluations()); Assert.AreEqual(0, col.Count, "GetValidEvaluations [Init]."); col = new List<Evaluation>(eval.GetMissingEvaluations()); Assert.AreEqual(5, col.Count, "GetMissingEvaluations [Init]."); for (int i = 0; i < 5; i++) { Assert.AreEqual(this.Definition[i], col[i].Definition); } col = new List<Evaluation>(eval.GetHasPassedEvaluations()); Assert.AreEqual(2, col.Count, "GetHasPassedEvaluations [Init]."); col = new List<Evaluation>(eval.GetHasFailedEvaluations()); Assert.AreEqual(3, col.Count, "GetHasFailedEvaluations [Init]."); Assert.AreEqual(null, eval.GetTotalPoints()); Assert.AreEqual(null, eval.GetTotalPointsReason()); Assert.AreEqual("?b", eval.ToString()); //let us add some value eval.Evaluations[0].Value.Points = 11; //A - 10-20 eval.Evaluations[1].Value.Points = 11; //B - 5-10 eval.Evaluations[2].Value.Points = 11; //C - <=20 eval.Evaluations[3].Value.Points = 9; //D - >=10 //E - col = new List<Evaluation>(eval.GetValidEvaluations()); Assert.AreEqual(4, col.Count, "GetValidEvaluations [Filled]."); //A-D for (int i = 0; i < 4; i++) { Assert.AreEqual(this.Definition[i], col[i].Definition); } col = new List<Evaluation>(eval.GetMissingEvaluations()); //E Assert.AreEqual(1, col.Count, "GetMissingEvaluations [Filled]."); Assert.AreEqual(this.Definition[4], col[0].Definition); //check HasPassed col = new List<Evaluation>(eval.GetHasPassedEvaluations()); //A,B,C,E Assert.AreEqual(4, col.Count, "GetHasPassedEvaluations [Filled]."); for (int i = 0; i < 3; i++) { Assert.AreEqual(this.Definition[i], col[i].Definition); } Assert.AreEqual(this.Definition[4], col[3].Definition); //check HasFailed col = new List<Evaluation>(eval.GetHasFailedEvaluations()); //D Assert.AreEqual(1, col.Count, "GetHasFailedEvaluations [Filled]."); Assert.AreEqual(this.Definition[3], col[0].Definition); decimal? dec = 11 + 10 + 11 + 9; Assert.AreEqual(dec, eval.GetTotalPoints()); //add reasons eval.Evaluations[1].Value.Reason = "Reason1"; eval.Evaluations[3].Value.Reason = "Reason2"; Assert.AreEqual("A [10-20b]: 11b, B [5-10b]: 11b (Reason1), C [max 20b]: 11b, D [min 10b]: 9b (Reason2)", eval.GetTotalPointsReason()); Assert.AreEqual("41b = A [10-20b]: 11b, B [5-10b]: 11b (Reason1), C [max 20b]: 11b, D [min 10b]: 9b (Reason2)", eval.ToString()); }