From bdfd86f9e4e130df9684ae007937a508f4586304 Mon Sep 17 00:00:00 2001 From: Ashley Yang Date: Tue, 14 Mar 2017 14:13:38 -0500 Subject: [PATCH 1/3] Update PathwayLogic #find_possible_domains to use index of grades for comparison instead of calling .to_i on grades so that PK and K work --- app.rb | 2 +- data/domain_order.csv | 2 ++ data/student_pathways.csv | 31 +++++++++++++++++++++++++++++++ data/student_tests.csv | 1 + pathway_logic.rb | 12 ++++++++---- spec/domain_spec.rb | 2 +- spec/pathway_spec.rb | 2 +- test_parser.rb | 2 +- 8 files changed, 46 insertions(+), 8 deletions(-) diff --git a/app.rb b/app.rb index e0ec741..403fee5 100644 --- a/app.rb +++ b/app.rb @@ -35,7 +35,7 @@ def generate_learning_paths_file(test_data_file, domain_order_file, results_file all_domains_ordered = DomainParser.parse_domains(domain_order_file) generated_pathways = build_pathway(test_data, all_domains_ordered) - pathways = create_pathways(test_data, generated_pathways) + p pathways = create_pathways(test_data, generated_pathways) PathwayWriter.write_to_csv(results_file, pathways) end diff --git a/data/domain_order.csv b/data/domain_order.csv index c2d7f84..ee0c680 100644 --- a/data/domain_order.csv +++ b/data/domain_order.csv @@ -1,3 +1,4 @@ +PK,RF,RL K,RF,RL,RI 1,RF,RL,RI 2,RF,RI,RL,L @@ -5,3 +6,4 @@ K,RF,RL,RI 4,RI,RL,L 5,RI,RL,L 6,RI,RL + diff --git a/data/student_pathways.csv b/data/student_pathways.csv index e69de29..8410eea 100644 --- a/data/student_pathways.csv +++ b/data/student_pathways.csv @@ -0,0 +1,31 @@ +Albin Stanton,K.RI,1.RI,2.RF,2.RI,3.RF +Erik Purdy,1.RL,1.RI,2.RI,2.RL,2.L +Aimee Cole,K.RF,K.RL,1.RF,1.RL,1.RI +Frederik Schulist,2.RF,3.RF,4.RI,4.RL,4.L +Addie Green,K.RI,1.RI,2.RF,2.RI,2.L +Missouri Auer,1.RI,2.RI,2.RL,2.L,3.RL +Christopher Hayes,K.RI,1.RI,2.RI,2.L,3.RI +Enos Jacobi,K.RF,K.RL,1.RF,1.RL,2.RF +Conrad Nitzsche,K.RI,1.RF,1.RI,2.RF,2.RI +Jazlyn Wisoky,3.RL,3.L,4.RL,4.L,5.RI +Kelley Emard,K.RF,K.RI,1.RF,1.RI,2.RF +Dell Kozey,K.RF,1.RF,2.RF,2.L,3.RF +Kraig Goldner,2.RI,3.RI,3.L,4.RI,4.RL +Stephon Ondricka,2.L,3.RI,3.L,4.RI,4.L +Tracey Lind,K.RF,1.RF,1.RL,2.RF,2.RL +Elissa Schinner,1.RI,2.RI,3.RL,3.RI,4.RI +Orpha Bartoletti,1.RF,2.RF,2.RI,2.L,3.RF +Timmothy Torphy,K.RF,K.RI,1.RF,1.RL,1.RI +Maia Torphy,K.RF,1.RF,2.RF,2.RI,2.L +Danyka Pfeffer,2.L,3.L,4.L,5.RI,5.RL +Leo O'Connell,K.RL,K.RI,1.RL,1.RI,2.RI +Scotty Kovacek,K.RF,1.RF,2.RF,2.L,3.RF +Cameron Prohaska,2.RF,2.RI,3.RF,3.RI,4.RI +Angus Torp,2.RF,2.L,3.RF,3.L,4.RL +Douglas Feil,1.RF,1.RL,1.RI,2.RF,2.RI +Maxime Runte,K.RL,1.RL,2.RF,2.RL,2.L +Mortimer Denesik,K.RF,K.RL,1.RF,1.RL,2.RF +Bennett Muller,2.L,3.L,4.L,5.RI,5.RL +Ayana Runolfsson,K.RF,1.RF,2.RF,2.RL,2.L +Angelina Runolfsson,K.RF,1.RF,1.RI,2.RF,2.RI +Bob Smith,PK.RF,K.RF,1.RF,1.RI,2.RF diff --git a/data/student_tests.csv b/data/student_tests.csv index 107498c..683cbfe 100644 --- a/data/student_tests.csv +++ b/data/student_tests.csv @@ -29,3 +29,4 @@ Mortimer Denesik,K,K,2,3 Bennett Muller,5,5,5,1 Ayana Runolfsson,K,2,5,2 Angelina Runolfsson,K,3,1,1 +Bob Smith,PK,3,1,PK diff --git a/pathway_logic.rb b/pathway_logic.rb index 4fbce29..48726ff 100644 --- a/pathway_logic.rb +++ b/pathway_logic.rb @@ -1,10 +1,13 @@ module PathwayLogic def self.find_possible_domains(domain, domain_array) + # read domain_order.csv to create an array of all grade levels + grades_for_espark = ["PK", "K", "1", "2", "3", "4", "5", "6"] + grades_in_domain = domain_array.map {|domain| domain[0] } + if !domain_array.include?(domain) - grade = domain.split(".")[0].to_i - domain = domain.split(".")[-1] - last_grade_in_domain = domain_array.last.split(".")[0].to_i - if grade <= last_grade_in_domain + grade = domain.split(".")[0] + last_grade_in_domain = grades_in_domain.last.split(".")[0] + if grades_for_espark.index(grade) <= grades_for_espark.index(last_grade_in_domain) domain_array end else @@ -16,3 +19,4 @@ def self.produce_pathway(ordered_domains_array, all_domains_for_pathway) (ordered_domains_array & all_domains_for_pathway).first(5) end end + diff --git a/spec/domain_spec.rb b/spec/domain_spec.rb index 41575cf..f2b70f7 100644 --- a/spec/domain_spec.rb +++ b/spec/domain_spec.rb @@ -1,4 +1,4 @@ -require_relative '../domain' +require_relative '../models/domain' require_relative '../domain_parser' describe Domain do diff --git a/spec/pathway_spec.rb b/spec/pathway_spec.rb index d783538..3216e35 100644 --- a/spec/pathway_spec.rb +++ b/spec/pathway_spec.rb @@ -1,4 +1,4 @@ -require_relative '../pathway' +require_relative '../models/pathway' describe 'Pathway' do diff --git a/test_parser.rb b/test_parser.rb index 6e7e666..ccef8d5 100644 --- a/test_parser.rb +++ b/test_parser.rb @@ -10,7 +10,7 @@ def self.parse_tests(filename) data_without_headers.map do |student| student_name = student.shift student_domains = student.map.with_index do |grade, index| - "#{grade}.#{test_domains[index]}" + "#{grade.strip}.#{test_domains[index]}" end student_data.store(student_name, student_domains) end From 9eec385df7ad1f1c002f9e7f388a6ea122a2e318 Mon Sep 17 00:00:00 2001 From: Ashley Yang Date: Tue, 14 Mar 2017 16:54:21 -0500 Subject: [PATCH 2/3] Method to generate learning pathways without writing them to a CSV for UI in rails --- Gemfile | 1 + app.rb | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 4a05f85..15066c4 100644 --- a/Gemfile +++ b/Gemfile @@ -1,3 +1,4 @@ source "https://rubygems.org" gem "rspec" +gem "pry" diff --git a/app.rb b/app.rb index 403fee5..2f26ad4 100644 --- a/app.rb +++ b/app.rb @@ -4,6 +4,7 @@ require_relative 'pathway_logic' require_relative 'models/pathway' require_relative 'pathway_writer' +require 'pry' def generate_all_domains(all_domains_ordered, domain) all_grades = Domain.new(domain).all_grades_in_domain(all_domains_ordered) @@ -35,10 +36,19 @@ def generate_learning_paths_file(test_data_file, domain_order_file, results_file all_domains_ordered = DomainParser.parse_domains(domain_order_file) generated_pathways = build_pathway(test_data, all_domains_ordered) - p pathways = create_pathways(test_data, generated_pathways) + pathways = create_pathways(test_data, generated_pathways) PathwayWriter.write_to_csv(results_file, pathways) end +def generate_learning_paths_objects(test_data_file, domain_order_file) + test_data = TestParser.parse_tests(test_data_file) + all_domains_ordered = DomainParser.parse_domains(domain_order_file) + + generated_pathways = build_pathway(test_data, all_domains_ordered) + create_pathways(test_data, generated_pathways) +end + generate_learning_paths_file('data/student_tests.csv', 'data/domain_order.csv', 'data/student_pathways.csv') +generate_learning_paths_objects('data/student_tests.csv', 'data/domain_order.csv') \ No newline at end of file From b0013cc145762ad833f619b7e618dec9312fa27e Mon Sep 17 00:00:00 2001 From: Ashley Yang Date: Tue, 14 Mar 2017 17:30:24 -0500 Subject: [PATCH 3/3] Comment out code to create pathway objects --- app.rb | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/app.rb b/app.rb index 2f26ad4..cd59756 100644 --- a/app.rb +++ b/app.rb @@ -40,15 +40,17 @@ def generate_learning_paths_file(test_data_file, domain_order_file, results_file PathwayWriter.write_to_csv(results_file, pathways) end -def generate_learning_paths_objects(test_data_file, domain_order_file) - test_data = TestParser.parse_tests(test_data_file) - all_domains_ordered = DomainParser.parse_domains(domain_order_file) +generate_learning_paths_file('data/student_tests.csv', 'data/domain_order.csv', 'data/student_pathways.csv') - generated_pathways = build_pathway(test_data, all_domains_ordered) - create_pathways(test_data, generated_pathways) -end +# Method to generate learning pathway objects for Rails/UI portion of interview +# def generate_learning_paths_objects(test_data_file, domain_order_file) +# test_data = TestParser.parse_tests(test_data_file) +# all_domains_ordered = DomainParser.parse_domains(domain_order_file) -generate_learning_paths_file('data/student_tests.csv', 'data/domain_order.csv', 'data/student_pathways.csv') -generate_learning_paths_objects('data/student_tests.csv', 'data/domain_order.csv') +# generated_pathways = build_pathway(test_data, all_domains_ordered) +# create_pathways(test_data, generated_pathways) +# end + +# generate_learning_paths_objects('data/student_tests.csv', 'data/domain_order.csv') \ No newline at end of file