From 5bf3a00328c63755ddc8482a6c88ca9088f97881 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 17 Sep 2019 14:47:56 -0400 Subject: [PATCH] FIX: Ignored flags should not count in your accuracy score --- app/models/reviewable_score.rb | 11 +++-------- .../reviewable_score_explanation_serializer.rb | 6 +----- spec/models/reviewable_score_spec.rb | 5 +++-- 3 files changed, 7 insertions(+), 15 deletions(-) diff --git a/app/models/reviewable_score.rb b/app/models/reviewable_score.rb index 14ba16ed48e..823e8935ce0 100644 --- a/app/models/reviewable_score.rb +++ b/app/models/reviewable_score.rb @@ -59,19 +59,14 @@ class ReviewableScore < ActiveRecord::Base user_stat = user&.user_stat return 0.0 if user_stat.blank? - calc_user_accuracy_bonus( - user_stat.flags_agreed, - user_stat.flags_disagreed, - user_stat.flags_ignored - ) + calc_user_accuracy_bonus(user_stat.flags_agreed, user_stat.flags_disagreed) end - def self.calc_user_accuracy_bonus(agreed, disagreed, ignored) + def self.calc_user_accuracy_bonus(agreed, disagreed) agreed ||= 0 disagreed ||= 0 - ignored ||= 0 - total = (agreed + disagreed + ignored).to_f + total = (agreed + disagreed).to_f return 0.0 if total <= 5 (agreed / total) * 5.0 diff --git a/app/serializers/reviewable_score_explanation_serializer.rb b/app/serializers/reviewable_score_explanation_serializer.rb index caff0cee266..73dccc01bf7 100644 --- a/app/serializers/reviewable_score_explanation_serializer.rb +++ b/app/serializers/reviewable_score_explanation_serializer.rb @@ -14,11 +14,7 @@ class ReviewableScoreExplanationSerializer < ApplicationSerializer ) def user_accuracy_bonus - ReviewableScore.calc_user_accuracy_bonus( - object.flags_agreed, - object.flags_disagreed, - object.flags_ignored - ) + ReviewableScore.calc_user_accuracy_bonus(object.flags_agreed, object.flags_disagreed) end end diff --git a/spec/models/reviewable_score_spec.rb b/spec/models/reviewable_score_spec.rb index 6a1c409c1f7..abf717e08f2 100644 --- a/spec/models/reviewable_score_spec.rb +++ b/spec/models/reviewable_score_spec.rb @@ -107,10 +107,11 @@ RSpec.describe ReviewableScore, type: :model do user_stat.flags_disagreed = 2 expect(ReviewableScore.user_accuracy_bonus(user).floor(2)).to eq(3.33) + # Ignored flags don't count user_stat.flags_agreed = 121 user_stat.flags_disagreed = 44 user_stat.flags_ignored = 4 - expect(ReviewableScore.user_accuracy_bonus(user).floor(2)).to eq(3.57) + expect(ReviewableScore.user_accuracy_bonus(user).floor(2)).to eq(3.66) end end @@ -137,7 +138,7 @@ RSpec.describe ReviewableScore, type: :model do user_stat.flags_agreed = 12 user_stat.flags_disagreed = 2 user_stat.flags_ignored = 2 - expect(ReviewableScore.user_flag_score(user)).to eq(6.75) + expect(ReviewableScore.user_flag_score(user).floor(2)).to eq(7.28) end end end