mirror of
https://github.com/moodle/moodle.git
synced 2025-04-21 16:32:18 +02:00
MDL-9506 Added some unit tests, found some errors, and realised they came from incorrect setup unit test data, which I corrected (grade finals for item 3 were set to 2-digit ints although item 3 was a scale of 1-7.
This commit is contained in:
parent
096858ffcf
commit
dda0c7e666
@ -372,6 +372,7 @@ class grade_category extends grade_object {
|
||||
$final_grades_for_aggregation[] = $item->get_standardised_final();
|
||||
}
|
||||
}
|
||||
|
||||
// 3. Aggregate the grades
|
||||
$aggregated_grades = $this->aggregate_grades($final_grades_for_aggregation);
|
||||
|
||||
@ -445,9 +446,10 @@ class grade_category extends grade_object {
|
||||
// If the gradevalue is null, we have a problem
|
||||
if (empty($aggregated_value)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$grade_raw = new grade_grades_raw();
|
||||
|
||||
$grade_raw->userid = $userid;
|
||||
$grade_raw->gradevalue = $aggregated_value;
|
||||
$grade_raw->grademin = $this->grade_item->grademin;
|
||||
|
@ -489,6 +489,9 @@ class grade_item extends grade_object {
|
||||
$raw_grade->update($raw_grade->gradevalue, $howmodified, $note);
|
||||
} else {
|
||||
$raw_grade->itemid = $this->id;
|
||||
if ($raw_grade->gradevalue > $raw_grade->grademax) {
|
||||
die("raw GRADE EXCEEDED grademax FIRST");
|
||||
}
|
||||
$raw_grade->insert();
|
||||
}
|
||||
|
||||
@ -536,6 +539,9 @@ class grade_item extends grade_object {
|
||||
$final_grade->gradevalue = $this->adjust_grade($raw_grade);
|
||||
$final_grade->itemid = $this->id;
|
||||
$final_grade->userid = $raw_grade->userid;
|
||||
if ($final_grade->gradevalue > $this->grademax) {
|
||||
die("FINAL GRADE EXCEEDED grademax FIRST");
|
||||
}
|
||||
$success = $success & $final_grade->insert();
|
||||
$this->grade_grades_final[$final_grade->userid] = $final_grade;
|
||||
}
|
||||
|
@ -175,6 +175,14 @@ class grade_category_test extends gradelib_test {
|
||||
|
||||
$this->assertEqual(3, count($raw_grades));
|
||||
$this->assertEqual(3, count($final_grades));
|
||||
|
||||
foreach ($raw_grades as $grade) {
|
||||
$this->assertWithinMargin($grade->gradevalue, $grade->grademin, $grade->grademax);
|
||||
}
|
||||
|
||||
foreach ($final_grades as $grade) {
|
||||
$this->assertWithinMargin($grade->gradevalue, 0, 100);
|
||||
}
|
||||
}
|
||||
|
||||
function test_grade_category_aggregate_grades() {
|
||||
@ -202,12 +210,12 @@ class grade_category_test extends gradelib_test {
|
||||
$raw_grade = new grade_grades_raw();
|
||||
$raw_grade->itemid = $item->id;
|
||||
$raw_grade->userid = $userid;
|
||||
$raw_grade->grademin = $item->grademin;
|
||||
$raw_grade->grademax = $item->grademax;
|
||||
$raw_grade->grademin = 0;
|
||||
$raw_grade->grademax = 1;
|
||||
$valuetype = "grade$item->gradetype";
|
||||
$raw_grade->gradevalue = rand(0, 1000) / 1000;
|
||||
$raw_grade->insert();
|
||||
return $raw_grade;
|
||||
return $raw_grade->gradevalue;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
@ -849,7 +849,7 @@ class gradelib_test extends UnitTestCase {
|
||||
$grade_final = new stdClass();
|
||||
$grade_final->itemid = $this->grade_items[2]->id;
|
||||
$grade_final->userid = 1;
|
||||
$grade_final->gradevalue = 70.5;
|
||||
$grade_final->gradevalue = 6;
|
||||
$grade_final->timecreated = mktime();
|
||||
$grade_final->timemodified = mktime();
|
||||
$grade_final->locked = true;
|
||||
@ -861,7 +861,7 @@ class gradelib_test extends UnitTestCase {
|
||||
$grade_final = new stdClass();
|
||||
$grade_final->itemid = $this->grade_items[2]->id;
|
||||
$grade_final->userid = 2;
|
||||
$grade_final->gradevalue = 80.5;
|
||||
$grade_final->gradevalue = 2;
|
||||
$grade_final->timecreated = mktime();
|
||||
$grade_final->timemodified = mktime();
|
||||
$grade_final->locked = true;
|
||||
@ -873,7 +873,7 @@ class gradelib_test extends UnitTestCase {
|
||||
$grade_final = new stdClass();
|
||||
$grade_final->itemid = $this->grade_items[2]->id;
|
||||
$grade_final->userid = 3;
|
||||
$grade_final->gradevalue = 64.5;
|
||||
$grade_final->gradevalue = 3;
|
||||
$grade_final->timecreated = mktime();
|
||||
$grade_final->timemodified = mktime();
|
||||
$grade_final->locked = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user