From 2c4dec050e8b8994b53824db2c5b754824dea0ad Mon Sep 17 00:00:00 2001 From: Nelson Jovel Date: Wed, 26 Jun 2024 12:02:22 -0700 Subject: [PATCH] chore: correct parsing for 'not sped' and 'lep not first year' --- app/models/ell.rb | 2 +- app/models/sped.rb | 4 +- app/models/subcategory.rb | 1 - .../graph/column/GenderColumn/unknown_spec.rb | 50 +++++++++---------- spec/services/survey_item_values_spec.rb | 11 ++++ 5 files changed, 38 insertions(+), 30 deletions(-) diff --git a/app/models/ell.rb b/app/models/ell.rb index 018d5df7..4cf578fd 100644 --- a/app/models/ell.rb +++ b/app/models/ell.rb @@ -9,7 +9,7 @@ class Ell < ApplicationRecord ell = ell.delete(",") case ell - in /lep\s*student\s*1st\s*year|LEP\s*student\s*not\s*1st\s*year|EL\s*Student\s*First\s*Year|LEP\s*student|^EL\s+|true|1|^ELL$/i + in /lep\s*student\s*1st\s*year|LEP\s*student\s*not\s*1st\s*year|EL\s*Student\s*First\s*Year|LEP\s*student|^EL\s+|true|1|^ELL$|^LEP\s*Not\s*1st\s*Year/i "ELL" in /0|2|3|Does\s*not\s*apply/i "Not ELL" diff --git a/app/models/sped.rb b/app/models/sped.rb index 01fe0bfa..b132aeb9 100644 --- a/app/models/sped.rb +++ b/app/models/sped.rb @@ -10,9 +10,9 @@ class Sped < ApplicationRecord case sped in /active|^A$|1|^Special\s*Education$/i "Special Education" - in /^I$|exited|0|^Not\s*Special\s*Education$|Does\s*not\s*apply|Referred|Ineligible|^No\s*special\s*needs$/i + in /^I$|exited|0|^Not\s*Special\s*Education$|Does\s*not\s*apply|Referred|Ineligible|^No\s*special\s*needs$|Not\s*SPED/i "Not Special Education" - in %r{^#*N/*A$|Unknown|SpecialEdStatus|SPED}i + in %r{^#*N/*A$|^Unknown|^SpecialEdStatus|^SPED}i "Unknown" else puts "************************************" diff --git a/app/models/subcategory.rb b/app/models/subcategory.rb index d0582888..e245e520 100644 --- a/app/models/subcategory.rb +++ b/app/models/subcategory.rb @@ -41,7 +41,6 @@ class Subcategory < ActiveRecord::Base teacher_response_rate: teacher.rate, meets_student_threshold: student.meets_student_threshold?, meets_teacher_threshold: teacher.meets_teacher_threshold?) end - @response_rate[[school, academic_year]] end diff --git a/spec/models/analyze/graph/column/GenderColumn/unknown_spec.rb b/spec/models/analyze/graph/column/GenderColumn/unknown_spec.rb index 29aab5f9..defb9d01 100644 --- a/spec/models/analyze/graph/column/GenderColumn/unknown_spec.rb +++ b/spec/models/analyze/graph/column/GenderColumn/unknown_spec.rb @@ -1,6 +1,4 @@ -require 'rails_helper' - -include Analyze::Graph::Column::GenderColumn +require "rails_helper" RSpec.describe Analyze::Graph::Column::GenderColumn::Unknown, type: :model do let(:school) { create(:school) } @@ -11,65 +9,65 @@ RSpec.describe Analyze::Graph::Column::GenderColumn::Unknown, type: :model do let(:number_of_columns) { 1 } let(:gender) { create(:gender, qualtrics_code: 99) } - let(:subcategory) { create(:subcategory, subcategory_id: '1A') } - let(:measure) { create(:measure, measure_id: '1A-iii', subcategory:) } + let(:subcategory) { create(:subcategory, subcategory_id: "1A") } + let(:measure) { create(:measure, measure_id: "1A-iii", subcategory:) } let(:scale) { create(:student_scale, measure:) } let(:survey_item) { create(:student_survey_item, scale:) } let(:teacher_scale) { create(:teacher_scale, measure:) } let(:teacher_survey_item) { create(:teacher_survey_item, scale:) } - context 'when no teacher responses exist' do - context 'when there are insufficient unknown students' do - it 'reports a score of 3 when the average is 3' do + context "when no teacher responses exist" do + context "when there are insufficient unknown students" do + it "reports a score of 3 when the average is 3" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, - number_of_columns:).score(0).average).to eq(nil) + number_of_columns:).score(academic_year).average).to eq(nil) end - it 'reports insufficient data' do + it "reports insufficient data" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, number_of_columns:).sufficient_student_responses?(academic_year:)).to eq(false) end end - context 'when there are sufficient unknown students' do - before do + context "when there are sufficient unknown students" do + before :each do create_list(:survey_item_response, 10, school:, academic_year:, gender:, survey_item:) end - it 'reports a score of 3 when the average is 3' do + it "reports a score of 3 when the average is 3" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, - number_of_columns:).score(0).average).to eq(3) + number_of_columns:).score(academic_year).average).to eq(3) end - it 'reports sufficient data' do + it "reports sufficient data" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, number_of_columns:).sufficient_student_responses?(academic_year:)).to eq(true) end end end - context 'when teacher responses exist' do - before do + context "when teacher responses exist" do + before :each do create_list(:survey_item_response, 10, school:, academic_year:, survey_item: teacher_survey_item, likert_score: 5) end - context 'when there are insufficient unknown students' do - it 'reports a score of 3 when the average is 3' do + context "when there are insufficient unknown students" do + it "reports a score of 3 when the average is 3" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, - number_of_columns:).score(0).average).to eq(nil) + number_of_columns:).score(academic_year).average).to eq(nil) end - it 'reports insufficient data' do + it "reports insufficient data" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, number_of_columns:).sufficient_student_responses?(academic_year:)).to eq(false) end end - context 'when there are sufficient unknown students' do - before do + context "when there are sufficient unknown students" do + before :each do create_list(:survey_item_response, 10, school:, academic_year:, gender:, survey_item:) end - it 'reports a score of 3 when the average is 3' do + it "reports a score of 3 when the average is 3" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, - number_of_columns:).score(0).average).to eq(3) + number_of_columns:).score(academic_year).average).to eq(3) end - it 'reports sufficient data' do + it "reports sufficient data" do expect(Analyze::Graph::Column::GenderColumn::Unknown.new(school:, academic_years:, position:, measure:, number_of_columns:).sufficient_student_responses?(academic_year:)).to eq(true) end diff --git a/spec/services/survey_item_values_spec.rb b/spec/services/survey_item_values_spec.rb index 0bbdbe64..7e70d462 100644 --- a/spec/services/survey_item_values_spec.rb +++ b/spec/services/survey_item_values_spec.rb @@ -579,6 +579,10 @@ RSpec.describe SurveyItemValues, type: :model do row = { "Raw ELL" => "EL - Early Child. or PK" } values = SurveyItemValues.new(row:, headers:, survey_items:, schools:) expect(values.ell).to eq "ELL" + + row = { "Raw ELL" => "LEP Not 1st Year" } + values = SurveyItemValues.new(row:, headers:, survey_items:, schools:) + expect(values.ell).to eq "ELL" end it 'translates "Does not Apply" into "Not ELL"' do @@ -680,6 +684,13 @@ RSpec.describe SurveyItemValues, type: :model do expect(values.sped).to eq "Not Special Education" end + it 'translates "not sped" into "Not Special Education' do + headers = ["Raw SpEd"] + row = { "Raw SpEd" => "Not SPED" } + values = SurveyItemValues.new(row:, headers:, survey_items:, schools:, academic_years:) + expect(values.sped).to eq "Not Special Education" + end + it 'translates NA into "Unknown"' do headers = ["Raw SpEd"] row = { "Raw SpEd" => "NA" }