@@ -133,17 +133,18 @@ def two_groups_two_assignments(g1_weight, a1_possible, g2_weight, a2_possible)
133133 calc = GradeCalculator . new [ @user . id ] ,
134134 @course . id ,
135135 :ignore_muted => false
136- ( current , _ ) , ( final , _ ) = calc . compute_scores . first
137- expect ( current [ :grade ] ) . to eq 50
138- expect ( final [ :grade ] ) . to eq 25
136+ scores = calc . compute_scores . first
137+ expect ( scores [ : current] [ :grade ] ) . to eq 50
138+ expect ( scores [ : final] [ :grade ] ) . to eq 25
139139 end
140140
141141 it "should be impossible to save grades that considered muted assignments" do
142142 @course . update_attribute ( :group_weighting_scheme , "percent" )
143143 calc = GradeCalculator . new [ @user . id ] ,
144144 @course . id ,
145145 :ignore_muted => false
146- expect { calc . save_scores } . to raise_error
146+ # save_scores is a private method
147+ expect { calc . send ( :save_scores ) } . to raise_error ( "Can't save scores when ignore_muted is false" )
147148 end
148149 end
149150 end
@@ -153,10 +154,14 @@ def two_groups_two_assignments(g1_weight, a1_possible, g2_weight, a2_possible)
153154 @assignment . grade_student @user , grade : 5
154155 @assignment2 . grade_student @user , grade : 10
155156 calc = GradeCalculator . new [ @user . id ] , @course . id
156- ( _ , current_group_info ) , ( _ , final_group_info ) = calc . compute_scores . first
157- expect ( current_group_info ) . to eq final_group_info
158- expect ( current_group_info [ @group . id ] [ :grade ] ) . to eq 50
159- expect ( current_group_info [ @group2 . id ] [ :grade ] ) . to eq 100
157+
158+ computed_scores = calc . compute_scores . first
159+ current_groups = computed_scores [ :current_groups ]
160+ final_groups = computed_scores [ :final_groups ]
161+
162+ expect ( current_groups ) . to eq final_groups
163+ expect ( current_groups [ @group . id ] [ :grade ] ) . to eq 50
164+ expect ( current_groups [ @group2 . id ] [ :grade ] ) . to eq 100
160165 end
161166
162167 it "should compute a weighted grade when specified" do
@@ -389,16 +394,19 @@ def nil_graded_assignment
389394
390395 calc = GradeCalculator . new ( [ @student2 . id , @student1 . id ] , @course )
391396 grades = calc . compute_scores
392- expect ( grades . shift . map { |g , _ | g [ :grade ] } ) . to eq [ 100 , 100 ]
393- expect ( grades . shift . map { |g , _ | g [ :grade ] } ) . to eq [ 50 , 50 ]
397+
398+ expect ( grades . first [ :current ] [ :grade ] ) . to eq 100
399+ expect ( grades . first [ :final ] [ :grade ] ) . to eq 100
400+ expect ( grades . last [ :current ] [ :grade ] ) . to eq 50
401+ expect ( grades . last [ :final ] [ :grade ] ) . to eq 50
394402 end
395403
396404 it "returns point information for unweighted courses" do
397405 course_with_student
398406 a = @course . assignments . create! :points_possible => 50
399407 a . grade_student @student , :grade => 25
400408 calc = GradeCalculator . new ( [ @student . id ] , @course )
401- ( ( grade_info , _ ) , _ ) = calc . compute_scores . first
409+ grade_info = calc . compute_scores . first [ :current ]
402410 expect ( grade_info ) . to eq ( { :grade => 50 , :total => 25 , :possible => 50 } )
403411 end
404412
@@ -600,11 +608,11 @@ def check_grades(current, final)
600608
601609 it "can compute grades for a grading period" do
602610 gc = GradeCalculator . new ( [ @student . id ] , @course , grading_period : @gp1 )
603- ( current , _ ) , _ = gc . compute_scores . first
611+ current = gc . compute_scores . first [ :current ]
604612 expect ( current [ :grade ] ) . to eql 25.0
605613
606614 gc = GradeCalculator . new ( [ @student . id ] , @course , grading_period : @gp2 )
607- ( current , _ ) , _ = gc . compute_scores . first
615+ current = gc . compute_scores . first [ :current ]
608616 expect ( current [ :grade ] ) . to eql 75.0
609617 end
610618 end
@@ -633,10 +641,8 @@ def set_up_course_for_differentiated_assignments
633641 create_section_override_for_assignment ( @overridden_middle , course_section : @section )
634642 end
635643
636- def get_user_points_and_course_total ( user , course )
637- calc = GradeCalculator . new [ user . id ] , course . id
638- final_grade_info = calc . compute_scores . first . last . first
639- [ final_grade_info [ :total ] , final_grade_info [ :possible ] ]
644+ def final_grade_info ( user , course )
645+ GradeCalculator . new ( [ user . id ] , course . id ) . compute_scores . first [ :final ]
640646 end
641647
642648 context "DA" do
@@ -645,22 +651,26 @@ def get_user_points_and_course_total(user,course)
645651 end
646652 it "should calculate scores based on visible assignments only" do
647653 # 5 + 15 + 10 + 20 + 10
648- expect ( get_user_points_and_course_total ( @user , @course ) ) . to eq [ 60 , 100 ]
654+ expect ( final_grade_info ( @user , @course ) [ :total ] ) . to eq 60
655+ expect ( final_grade_info ( @user , @course ) [ :possible ] ) . to eq 100
649656 end
650657 it "should drop the lowest visible when that rule is in place" do
651658 @group . update_attribute ( :rules , 'drop_lowest:1' )
652659 # 5 + 15 + 10 + 20 + 10 - 5
653- expect ( get_user_points_and_course_total ( @user , @course ) ) . to eq [ 55 , 80 ]
660+ expect ( final_grade_info ( @user , @course ) [ :total ] ) . to eq 55
661+ expect ( final_grade_info ( @user , @course ) [ :possible ] ) . to eq 80
654662 end
655663 it "should drop the highest visible when that rule is in place" do
656664 @group . update_attribute ( :rules , 'drop_highest:1' )
657665 # 5 + 15 + 10 + 20 + 10 - 20
658- expect ( get_user_points_and_course_total ( @user , @course ) ) . to eq [ 40 , 80 ]
666+ expect ( final_grade_info ( @user , @course ) [ :total ] ) . to eq 40
667+ expect ( final_grade_info ( @user , @course ) [ :possible ] ) . to eq 80
659668 end
660669 it "shouldnt count an invisible assingment with never drop on" do
661670 @group . update_attribute ( :rules , "drop_lowest:2\n never_drop:#{ @overridden_lowest . id } " )
662671 # 5 + 15 + 10 + 20 + 10 - 10 - 10
663- expect ( get_user_points_and_course_total ( @user , @course ) ) . to eq [ 40 , 60 ]
672+ expect ( final_grade_info ( @user , @course ) [ :total ] ) . to eq 40
673+ expect ( final_grade_info ( @user , @course ) [ :possible ] ) . to eq 60
664674 end
665675 end
666676 end
0 commit comments