]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-9506 Added some unit tests, found some errors, and realised they came from incorr...
authornicolasconnault <nicolasconnault>
Mon, 14 May 2007 08:18:03 +0000 (08:18 +0000)
committernicolasconnault <nicolasconnault>
Mon, 14 May 2007 08:18:03 +0000 (08:18 +0000)
lib/grade/grade_category.php
lib/grade/grade_item.php
lib/simpletest/grade/simpletest/testgradecategory.php
lib/simpletest/testgradelib.php

index f56638a2e4e8d772b6f8c67b4358cb0d66edd1b3..431386caa67fa024bf5dd175911ef250d8102fa8 100644 (file)
@@ -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;
index 5ca7f1e71361fa82252af0001a248d807c236079..f41f7e4dc3d6c03c762ac06efd2f0d9f927bd113 100644 (file)
@@ -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;
         }
index a1cf3d33257eccaa71a496b0bb56e9da57c677c5..1e050dcfad17a8e6c631867f42b4867985cd9afa 100755 (executable)
@@ -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;
     }
 } 
 ?>
index 9db24fc9a8ffe0bf6c50a6cf46b5dd024854499c..423f2e90a757619c4675718dc93dcc768aff6b00 100644 (file)
@@ -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;