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:
parent
46540391d8
commit
e67a03bbe3
@ -15,4 +15,13 @@ class Problem < ActiveRecord::Base
|
|||||||
def original_url
|
def original_url
|
||||||
"https://projecteuler.net/problem=#{self.id}"
|
"https://projecteuler.net/problem=#{self.id}"
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
@ -17,4 +17,21 @@ class ProblemTest < ActiveSupport::TestCase
|
|||||||
test "should have correct original url" do
|
test "should have correct original url" do
|
||||||
assert_equal "https://projecteuler.net/problem=1", problems(:one).original_url
|
assert_equal "https://projecteuler.net/problem=1", problems(:one).original_url
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user