1
0
mirror of https://github.com/projekteuler/projekteuler.git synced 2025-12-10 08:46:41 +01:00

Add function for updating problem count

This commit is contained in:
Philipp Fischbeck 2015-03-01 20:56:30 +01:00
parent 46540391d8
commit e67a03bbe3
2 changed files with 26 additions and 0 deletions

View File

@ -15,4 +15,13 @@ class Problem < ActiveRecord::Base
def original_url
"https://projecteuler.net/problem=#{self.id}"
end
def self.update_count(new_count)
old_count = Problem.count
raise ArgumentError, "new count has to be larger than old count" if new_count < old_count
new_count.times do |i|
Problem.where(id: i + 1).first_or_create!
end
end
end

View File

@ -17,4 +17,21 @@ class ProblemTest < ActiveSupport::TestCase
test "should have correct original url" do
assert_equal "https://projecteuler.net/problem=1", problems(:one).original_url
end
test "should allow for problem count updating" do
Problem.update_count(10)
assert_not Problem.where(id: 0).exists?
(1..10).each do |i|
assert Problem.where(id: i).exists?
end
assert_equal "First title", Problem.find(1).title
end
test "should not allow decreasing problem count update" do
assert_raises ArgumentError do
Problem.update_count(1)
end
assert_equal 3, Problem.count()
end
end