Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 27 additions & 14 deletions update_quality.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
def update_quality(awards):
for award in awards:
if award.name != 'Blue First' and award.name != 'Blue Compare':
#UserStory: Handle Blue Star Award seperately
if award.name != 'Blue First' and award.name != 'Blue Compare' and award.name != 'Blue Star':
if award.quality > 0:
if award.name != 'Blue Distinction Plus':
award.quality -= 1
else:
if award.quality < 50:
award.quality += 1
if award.name == 'Blue Compare':
if award.expires_in < 11:
if award.quality < 50:
award.quality += 1
if award.expires_in < 6:
if award.quality < 50:
award.quality += 1
if award.name != 'Blue Star':
if award.quality < 50:
award.quality += 1
if award.name == 'Blue Compare':
if award.expires_in < 11:
if award.quality < 50:
award.quality += 1
if award.expires_in < 6:
if award.quality < 50:
award.quality += 1

if award.name != 'Blue Distinction Plus':
award.expires_in -= 1
Expand All @@ -22,11 +24,22 @@ def update_quality(awards):
if award.name != 'Blue First':
if award.name != 'Blue Compare':
if award.quality > 0:
if award.name != 'Blue Distinction Plus':
if award.name != 'Blue Distinction Plus' and award.name != 'Blue Star':
award.quality -= 1
else:
award.quality = award.quality - award.quality
else:
if award.quality < 50:
award.quality += 1
else:
if award.name != 'Blue Star':
if award.quality < 50:
award.quality += 1
#UserStory: Handle Blue Star Award seperately here to lose quality value twice as fast as normal awards.
if award.name == 'Blue Star':
if award.quality > 1:
if award.expires_in > 0:
award.quality -= 2
else:
award.quality -= 4
if award.quality < 0: #Handle quality to not make negative during calculation
award.quality = 0


15 changes: 13 additions & 2 deletions update_quality.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,17 @@

def update_quality(awards)
awards.each do |award|
if award.name != 'Blue First' && award.name != 'Blue Compare'
#UserStory: Handle Blue Star Award here to lose quality value twice as fast as normal awards.
if award.name == 'Blue Star'
if award.quality > 0
if award.expires_in > 0
degradation_factor = 2
else
degradation_factor = 4
end
award.quality -= degradation_factor
end
elsif award.name != 'Blue First' && award.name != 'Blue Compare'
if award.quality > 0
if award.name != 'Blue Distinction Plus'
award.quality -= 1
Expand Down Expand Up @@ -32,7 +42,8 @@ def update_quality(awards)
if award.name != 'Blue First'
if award.name != 'Blue Compare'
if award.quality > 0
if award.name != 'Blue Distinction Plus'
awardsNameArr = ['Blue Distinction Plus', 'Blue Star']
if !(awardsNameArr.include? award.name)
award.quality -= 1
end
end
Expand Down
3 changes: 1 addition & 2 deletions update_quality_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,7 @@
end
end

context 'given a Blue Star award' do
before { pending }
context 'given a Blue Star award' do #Removed pending as Blue Star award is implemented
let(:name) { 'Blue Star' }
before { award.expires_in.should == initial_expires_in-1 }

Expand Down
3 changes: 2 additions & 1 deletion update_quality_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@ def test_blue_compare(initial_expires_in, initial_quality, expected_quality):
(-10,10,6),
(-10,0,0),
])
@pytest.mark.xfail(reason = 'Pending')
#Dont Fail test as Blue Star Award is implemented
#@pytest.mark.xfail(reason = 'Pending')
def test_blue_star(initial_expires_in, initial_quality, expected_quality):
award = Award(name = 'Blue Star', expires_in = initial_expires_in,
quality = initial_quality)
Expand Down