Exemple #1
0
 protected function sub_test_grade_item_rescale_grades_keep_percentage()
 {
     global $DB;
     $gradeitem = new grade_item($this->grade_items[10], false);
     // 10 is the manual grade item.
     // Create some grades to go with the grade item.
     $gradeids = array();
     $grade = new stdClass();
     $grade->itemid = $gradeitem->id;
     $grade->userid = $this->user[2]->id;
     $grade->finalgrade = 10;
     $grade->rawgrademax = $gradeitem->grademax;
     $grade->rawgrademin = $gradeitem->grademin;
     $grade->timecreated = time();
     $grade->timemodified = time();
     $gradeids[] = $DB->insert_record('grade_grades', $grade);
     $grade->userid = $this->user[3]->id;
     $grade->finalgrade = 50;
     $grade->rawgrademax = $gradeitem->grademax;
     $grade->rawgrademin = $gradeitem->grademin;
     $gradeids[] = $DB->insert_record('grade_grades', $grade);
     // Run the function.
     $gradeitem->grademax = 33;
     $gradeitem->grademin = 3;
     $gradeitem->update();
     $gradeitem->rescale_grades_keep_percentage(0, 100, 3, 33, 'test');
     // Check that the grades were updated to match the grade item.
     $grade = $DB->get_record('grade_grades', array('id' => $gradeids[0]));
     $this->assertEquals($gradeitem->grademax, $grade->rawgrademax, 'Max grade mismatch', 0.0001);
     $this->assertEquals($gradeitem->grademin, $grade->rawgrademin, 'Min grade mismatch', 0.0001);
     $this->assertEquals(6, $grade->finalgrade, 'Min grade mismatch', 0.0001);
     $grade = $DB->get_record('grade_grades', array('id' => $gradeids[1]));
     $this->assertEquals($gradeitem->grademax, $grade->rawgrademax, 'Max grade mismatch', 0.0001);
     $this->assertEquals($gradeitem->grademin, $grade->rawgrademin, 'Min grade mismatch', 0.0001);
     $this->assertEquals(18, $grade->finalgrade, 'Min grade mismatch', 0.0001);
 }