Skip to content

Commit 258e64b

Browse files
committed
Test field interface conformance for arb types
1 parent 00e302b commit 258e64b

File tree

8 files changed

+85
-1
lines changed

8 files changed

+85
-1
lines changed

src/arb/Complex.jl

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,10 @@ function canonical_unit(x::ComplexFieldElem)
6363
return x
6464
end
6565

66-
# TODO: implement hash
66+
# TODO: implement better hash
67+
function hash(a::ComplexFieldElem, h::UInt)
68+
return h
69+
end
6770

6871
characteristic(::ComplexField) = 0
6972

src/arb/Real.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ zero(R::RealField) = R(0)
3232
one(R::RealField) = R(1)
3333

3434
# TODO: Add hash (and document under ArbFieldElem basic functionality)
35+
function hash(a::RealFieldElem, h::UInt)
36+
return h
37+
end
3538

3639
@doc raw"""
3740
accuracy_bits(x::RealFieldElem)

src/arb/acb.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ function canonical_unit(x::AcbFieldElem)
7474
end
7575

7676
# TODO: implement hash
77+
function hash(a::AcbFieldElem, h::UInt)
78+
return h
79+
end
7780

7881
characteristic(::AcbField) = 0
7982

src/arb/arb.jl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ zero(R::ArbField) = R(0)
3232
one(R::ArbField) = R(1)
3333

3434
# TODO: Add hash (and document under ArbFieldElem basic functionality)
35+
function hash(a::ArbFieldElem, h::UInt)
36+
return h
37+
end
3538

3639
@doc raw"""
3740
accuracy_bits(x::ArbFieldElem)

test/arb/Complex-test.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11
RR = RealField()
22
CC = ComplexField()
33

4+
function test_elem(R::ComplexField)
5+
randtype = rand((
6+
:urandom,
7+
:randtest,
8+
:randtest_exact,
9+
:randtest_precise,
10+
:randtest_wide,
11+
:randtest_special,
12+
))
13+
return rand(R; randtype)
14+
end
15+
16+
@testset "ComplexFieldElem.conformance_tests" begin
17+
test_Field_interface(CC)
18+
#test_Field_interface_recursive(CC)
19+
end
20+
421
@testset "ComplexFieldElem.constructors" begin
522
@test isa(CC, ComplexField)
623
@test isa(CC(2), FieldElem)

test/arb/Real-test.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
RR = RealField()
22

3+
function test_elem(R::RealField)
4+
randtype = rand((
5+
:urandom,
6+
:randtest,
7+
:randtest_exact,
8+
:randtest_precise,
9+
:randtest_wide,
10+
:randtest_special,
11+
))
12+
return rand(R; randtype)
13+
end
14+
15+
@testset "RealFieldElem.conformance_tests" begin
16+
test_Field_interface(RR)
17+
#test_Field_interface_recursive(RR)
18+
end
19+
320
@testset "RealFieldElem.precision" begin
421
old_prec = precision(RealField)
522

test/arb/acb-test.jl

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11
RR = ArbField(64)
22
CC = AcbField(64)
33

4+
function test_elem(R::AcbField)
5+
randtype = rand((
6+
:urandom,
7+
:randtest,
8+
:randtest_exact,
9+
:randtest_precise,
10+
:randtest_wide,
11+
:randtest_special,
12+
))
13+
return rand(R; randtype)
14+
end
15+
16+
@testset "AcbFieldElem.conformance_tests" begin
17+
test_Field_interface(CC)
18+
#test_Field_interface_recursive(CC)
19+
end
20+
421
@testset "AcbFieldElem.constructors" begin
522
@test isa(CC, AcbField)
623
@test isa(CC(2), FieldElem)

test/arb/arb-test.jl

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,26 @@
11
RR = ArbField(64)
22

3+
function test_elem(R::ArbField)
4+
randtype = rand((
5+
:urandom,
6+
:randtest,
7+
:randtest_exact,
8+
:randtest_precise,
9+
:randtest_wide,
10+
:randtest_special,
11+
))
12+
return rand(R; randtype)
13+
end
14+
15+
function equality(a::T, b::T) where T <: Union{ArbFieldElem,RealFieldElem,AcbFieldElem,ComplexFieldElem}
16+
return isequal(a, b)
17+
end
18+
19+
@testset "ArbFieldElem.conformance_tests" begin
20+
test_Field_interface(RR)
21+
#test_Field_interface_recursive(RR)
22+
end
23+
324
@testset "ArbFieldElem.constructors" begin
425
@test isa(RR, ArbField)
526
@test isa(RR(2), FieldElem)

0 commit comments

Comments
 (0)