1 | | + | require 'prime'
|
1 | 1 | | def is_prime_check(n)
|
| 2 | − | return false if n < 2
|
| 3 | − | for x in 2.. Math.sqrt(n).round
|
| 4 | − | return false if n % x == 0
|
| 5 | − | end
|
| 6 | − | return true
|
3 | | + | n.prime?
|
7 | 7 | | end
|
8 | 8 | | |
9 | 9 | | describe "Basic Tests" do
|
10 | 10 | | it "Low values of n" do
|
11 | 11 | | Test.assert_equals(is_prime(1), false)
|
12 | 12 | | Test.assert_equals(is_prime(2), true)
|
… | Expand | 13 | 13 | | Test.assert_equals(is_prime(3), true)
| 14 | 14 | | Test.assert_equals(is_prime(5), true)
| 15 | 15 | | Test.assert_equals(is_prime(7), true)
| 16 | 16 | | Test.assert_equals(is_prime(11), true)
| 17 | 17 | | Test.assert_equals(is_prime(13), true)
| 18 | 18 | | Test.assert_equals(is_prime(15), false)
| 19 | 19 | | Test.assert_equals(is_prime(18), false)
|
|
20 | 20 | | Test.assert_equals(is_prime(21), false)
|
21 | 21 | | end
|
22 | 22 | | end
|
23 | 23 | | |
24 | 24 | | describe "Random Tests" do
|
| 25 | − | it "Values of n between 1000 and 10e12" do
|
| 26 | − | for h in 1..100
|
| 27 | − | n = rand(1000..1000000000000)
|
| 28 | − | result = is_prime_check(n)
|
| 29 | − | res = is_prime(n)
|
| 30 | − | it "Testing for n = " + n.to_s do
|
| 31 | − | Test.assert_equals(res, result)
|
| 32 | − | end
|
22 | | + | it "Values of n between 1000 and 10e12" do
|
23 | | + | 100.times do
|
24 | | + | n = rand(1000..1000000000000)
|
25 | | + | puts "Testing for n = #{n}"
|
26 | | + | Test.assert_equals(is_prime(n), is_prime_check(n))
|
33 | 33 | | end
|
34 | 34 | | end
|
35 | 35 | | end
|