From d8b4fd0f9bf3c818c58c57105cd6cc421141ad8d Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Wed, 11 Dec 2013 20:13:52 -0600 Subject: [PATCH 1/6] questions on panda for now, will finish rest too --- .../teacher_view_average_grade.rb | 22 +++++++++++++++++++ .../teacher_can_view_average_grade.feature | 11 ++++++++++ lib/teacher.rb | 7 ++++++ spec/teacher_spec.rb | 7 ++++++ 4 files changed, 47 insertions(+) create mode 100644 features/step_definitions/teacher_view_average_grade.rb create mode 100644 features/teacher_can_view_average_grade.feature diff --git a/features/step_definitions/teacher_view_average_grade.rb b/features/step_definitions/teacher_view_average_grade.rb new file mode 100644 index 0000000..f4650ba --- /dev/null +++ b/features/step_definitions/teacher_view_average_grade.rb @@ -0,0 +1,22 @@ +Given /^I have a class$/ do + @student = Student.new + @teacher = Teacher.new + @class = Class.new +end + +Given /^their assignments are graded$/ do + @teacher.submit_assignment(@student, Assignment.new) + @teacher.record_grade(@student, 95) + @teacher.assignment_for_student(@student).grade.should eq(95) +end + +When /^I take the average of the grades$/ do + @class_total = class_total + @class_grade = class_total +end + +Then /^the class has an average grade$/ do + @class_total = class_total + @class_grade = class_grade + average_grade = @class_grade / @class_total +end diff --git a/features/teacher_can_view_average_grade.feature b/features/teacher_can_view_average_grade.feature new file mode 100644 index 0000000..021cb2b --- /dev/null +++ b/features/teacher_can_view_average_grade.feature @@ -0,0 +1,11 @@ +Feature: Teacher can view average grade + + As a teacher + I can view the average grade of the class + So I can see how we're doing as a whole + + Scenario: Teacher can view average grade + Given I have a class + And their assignments are graded + When I take the average of the grades + Then the class has an average grade diff --git a/lib/teacher.rb b/lib/teacher.rb index d68ffe9..6355152 100644 --- a/lib/teacher.rb +++ b/lib/teacher.rb @@ -1,6 +1,8 @@ class Teacher def initialize @assignments = {} + @class_total = class_total + @class_grade = class_grade end def record_grade(student, grade) @@ -16,4 +18,9 @@ def submit_assignment(student, assignment) def assignment_for_student(student) @assignments[student] end + + def class + @class_total = @student * 20 + @class_grade = @student.grade * 20 + end end diff --git a/spec/teacher_spec.rb b/spec/teacher_spec.rb index 66894cc..08b51bd 100644 --- a/spec/teacher_spec.rb +++ b/spec/teacher_spec.rb @@ -9,6 +9,13 @@ subject.assignment_for_student(student).should eq(assignment) end + it "should view average grade for the class" do + class_total = ClassTotal.new + class_grade = ClassGrade.new + average_grade = @class_grade / @class_total + end + + describe "should record a grade" do it "should record the grade" do From 22bedbe972c8eff82759b72cbfed6ff7275fc334 Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Fri, 13 Dec 2013 10:51:46 -0600 Subject: [PATCH 2/6] more changes --- lib/teacher.rb | 5 +++++ spec/teacher_spec.rb | 6 +----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/teacher.rb b/lib/teacher.rb index 6355152..c28b100 100644 --- a/lib/teacher.rb +++ b/lib/teacher.rb @@ -23,4 +23,9 @@ def class @class_total = @student * 20 @class_grade = @student.grade * 20 end + + def average_grade + average_grade = AverageGrade.new + average_grade.average(class_grade / class_total) + end end diff --git a/spec/teacher_spec.rb b/spec/teacher_spec.rb index 08b51bd..42b7d1b 100644 --- a/spec/teacher_spec.rb +++ b/spec/teacher_spec.rb @@ -10,13 +10,9 @@ end it "should view average grade for the class" do - class_total = ClassTotal.new - class_grade = ClassGrade.new - average_grade = @class_grade / @class_total + average_grade.should eq(class_grade/class_total) end - - describe "should record a grade" do it "should record the grade" do student = stub From 08b8d26473ca7554383ff11a883e2f50cf34f35b Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Fri, 13 Dec 2013 11:01:45 -0600 Subject: [PATCH 3/6] Changed my cucumber features --- .../teacher_view_average_grade.rb | 24 +++++++------------ .../teacher_can_view_average_grade.feature | 8 +++---- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/features/step_definitions/teacher_view_average_grade.rb b/features/step_definitions/teacher_view_average_grade.rb index f4650ba..4649bfe 100644 --- a/features/step_definitions/teacher_view_average_grade.rb +++ b/features/step_definitions/teacher_view_average_grade.rb @@ -1,22 +1,16 @@ -Given /^I have a class$/ do - @student = Student.new - @teacher = Teacher.new - @class = Class.new +Given /^I add all the grades in one class$/ do + class_grade = record_grade(student, grade)(n+1) #Not sure how to write a block that keeps adding a students until you run out of students end -Given /^their assignments are graded$/ do - @teacher.submit_assignment(@student, Assignment.new) - @teacher.record_grade(@student, 95) - @teacher.assignment_for_student(@student).grade.should eq(95) +Given /^the total number of students is added together$/ do + class_total = studets(1..n) #unsure how to add all the students together end -When /^I take the average of the grades$/ do - @class_total = class_total - @class_grade = class_total +When /^there is a cummulative class grade and a total number of students$/ do + class_grade = class_grade + class_total = class_total end -Then /^the class has an average grade$/ do - @class_total = class_total - @class_grade = class_grade - average_grade = @class_grade / @class_total +Then /^the I can get the class average by dividing the class grade by number of students$/ do + class_average = class_grade / class_total end diff --git a/features/teacher_can_view_average_grade.feature b/features/teacher_can_view_average_grade.feature index 021cb2b..9864f84 100644 --- a/features/teacher_can_view_average_grade.feature +++ b/features/teacher_can_view_average_grade.feature @@ -5,7 +5,7 @@ Feature: Teacher can view average grade So I can see how we're doing as a whole Scenario: Teacher can view average grade - Given I have a class - And their assignments are graded - When I take the average of the grades - Then the class has an average grade + Given I add all the grades in one class + And the total number if students is added together + When there is a cummulative class grade and a total number of students + Then the I can get the class average by dividing the class grade by number of students From 83fce3a8a290daa6d871dd07a0e4130494cb2b9b Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Fri, 13 Dec 2013 11:12:15 -0600 Subject: [PATCH 4/6] Added average grade class, unsure why average grade is still undefined --- lib/teacher.rb | 15 +++++++++------ spec/teacher_spec.rb | 10 ++++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/teacher.rb b/lib/teacher.rb index c28b100..f277cc6 100644 --- a/lib/teacher.rb +++ b/lib/teacher.rb @@ -1,8 +1,6 @@ class Teacher def initialize @assignments = {} - @class_total = class_total - @class_grade = class_grade end def record_grade(student, grade) @@ -23,9 +21,14 @@ def class @class_total = @student * 20 @class_grade = @student.grade * 20 end +end - def average_grade - average_grade = AverageGrade.new - average_grade.average(class_grade / class_total) +class AverageGrade + def intialize + @average_grade = average_grade end -end + + def average + (class_grade / class_total) + end +end \ No newline at end of file diff --git a/spec/teacher_spec.rb b/spec/teacher_spec.rb index 42b7d1b..41d0450 100644 --- a/spec/teacher_spec.rb +++ b/spec/teacher_spec.rb @@ -9,10 +9,6 @@ subject.assignment_for_student(student).should eq(assignment) end - it "should view average grade for the class" do - average_grade.should eq(class_grade/class_total) - end - describe "should record a grade" do it "should record the grade" do student = stub @@ -23,3 +19,9 @@ end end end + +describe AverageGrade do + it "should view average grade for the class" do + average_grade.average.should eq(class_grade/class_total) + end +end \ No newline at end of file From 2b96b798744f7b78f67c36df0add2ed904e82d0a Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Sat, 14 Dec 2013 08:54:49 -0600 Subject: [PATCH 5/6] Edited but still have one failign Rspec test --- lib/teacher.rb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/teacher.rb b/lib/teacher.rb index f277cc6..670433c 100644 --- a/lib/teacher.rb +++ b/lib/teacher.rb @@ -17,18 +17,22 @@ def assignment_for_student(student) @assignments[student] end - def class - @class_total = @student * 20 - @class_grade = @student.grade * 20 - end end class AverageGrade - def intialize + def initialize @average_grade = average_grade + @class_total = class_total + @class_grade = class_grade end def average (class_grade / class_total) end + + def class + @class_total = @student * 20 + @class_grade = @student.grade * 20 + end + end \ No newline at end of file From 278bf5925c1cb959813b5d5583e866c018fb8cac Mon Sep 17 00:00:00 2001 From: Mike Adeleke Date: Tue, 17 Dec 2013 12:38:55 -0600 Subject: [PATCH 6/6] Made Avergagrade.new --- lib/teacher.rb | 2 +- spec/teacher_spec.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/teacher.rb b/lib/teacher.rb index 670433c..f99eaff 100644 --- a/lib/teacher.rb +++ b/lib/teacher.rb @@ -20,7 +20,7 @@ def assignment_for_student(student) end class AverageGrade - def initialize + def initialize(average_grade, class_total, class_grade) @average_grade = average_grade @class_total = class_total @class_grade = class_grade diff --git a/spec/teacher_spec.rb b/spec/teacher_spec.rb index 41d0450..7c9ee85 100644 --- a/spec/teacher_spec.rb +++ b/spec/teacher_spec.rb @@ -22,6 +22,6 @@ describe AverageGrade do it "should view average grade for the class" do - average_grade.average.should eq(class_grade/class_total) + AverageGrade.new.average.should eq(class_grade/class_total) end end \ No newline at end of file