Skip to content

Commit fc638ad

Browse files
authored
previous commit deleted tests accidentally (#4)
1 parent 90383d2 commit fc638ad

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

test/runtests.jl

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
using Test, IntegerMathUtils
2+
3+
@testset "iroot" begin
4+
for T in (Int32, Int64, BigInt)
5+
@test iroot(T(100), 2) == T(10)
6+
@test iroot(T(101), 2) == T(10)
7+
@test iroot(T(99), 2) == T(9)
8+
@test iroot(T(1000), 3) == T(10)
9+
@test iroot(T(1001), 3) == T(10)
10+
@test iroot(T(999), 3) == T(9)
11+
@test iroot(T(10000), 4) == T(10)
12+
@test iroot(T(10001), 4) == T(10)
13+
@test iroot(T(9999), 4) == T(9)
14+
end
15+
@test iroot(big(23)^50, 50) == big(23)
16+
@test iroot(big(23)^50 + 1, 50) == big(23)
17+
@test iroot(big(23)^50 - 1, 50) == big(22)
18+
end
19+
20+
@testset "ispower" begin
21+
for T in (Int32, Int64, BigInt)
22+
@test ispower(T(100)) == true
23+
@test ispower(T(1)) == true
24+
@test ispower(T(0)) == true
25+
@test ispower(T(12)) == false
26+
@test ispower(T(2^30)) == true
27+
@test ispower(T(5)^10) == true
28+
@test ispower(T(2^30)+1) == false
29+
@test ispower(T(5)^10+1) == false
30+
end
31+
@test ispower(big(5)^40) == true
32+
@test ispower(big(5)^40 + 1) == false
33+
@test ispower(6 * big(5)^40) == false
34+
end
35+
36+
@testset "find_exponent" begin
37+
for T in (Int32, Int64, BigInt)
38+
@test find_exponent(T(100)) === 2
39+
@test find_exponent(T(1)) === 1
40+
@test find_exponent(T(0)) === 1
41+
@test find_exponent(T(12)) === 1
42+
@test find_exponent(T(2^30)) === 30
43+
@test find_exponent(T(5)^10) === 10
44+
@test find_exponent(T(2^30)+1) === 1
45+
@test find_exponent(T(5)^10+1) === 1
46+
end
47+
@test find_exponent(big(5)^40) === 40
48+
@test find_exponent(big(5)^40 + 1) === 1
49+
@test find_exponent(6*big(5)^40 ) === 1
50+
end
51+
52+
@testset "is_probably_prime" begin
53+
for T in (Int32, Int64, BigInt)
54+
@test is_probably_prime(T(2)^7-1) == true
55+
@test is_probably_prime(T(2)^13-1) == true
56+
@test is_probably_prime(T(2)^19-1) == true
57+
@test is_probably_prime(T(2)^27-1) == false
58+
@test is_probably_prime(T(2)^23-1) == false
59+
@test is_probably_prime(T(2)^30-1) == false
60+
end
61+
@test is_probably_prime(big(2)^127-1) == true
62+
@test is_probably_prime(big(2)^128-1) == false
63+
end
64+
65+
@testset "kroneker" begin
66+
@test kronecker(4, 5) == kronecker(4, -5) == 1
67+
@test kronecker(1, 0) == kronecker(-1, 0) == 1
68+
@test kronecker(-4, -5) == -1
69+
@test kronecker(4, 6) == kronecker(-4, 0) == 0
70+
end

0 commit comments

Comments
 (0)