FIX: Ignored flags should not count in your accuracy score

This commit is contained in:
Robin Ward 2019-09-17 14:47:56 -04:00
parent c463a04c3f
commit 5bf3a00328
3 changed files with 7 additions and 15 deletions

View File

@ -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

View File

@ -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

View File

@ -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