Skip to content

Commit 3f986c1

Browse files
committed
Import more ConformanceTests stuff into TestExt
1 parent 070ea63 commit 3f986c1

File tree

4 files changed

+61
-45
lines changed

4 files changed

+61
-45
lines changed

ext/TestExt/Groups-conformance-tests.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
###############################################################################
1717

1818

19-
function ConformanceTests.test_Group_interface(G::Group)
19+
function test_Group_interface(G::Group)
2020
@testset "Group interface" begin
2121
# @testset "Iteration protocol" begin
2222
# IS = Base.IteratorSize(typeof(G))
@@ -103,7 +103,7 @@ function ConformanceTests.test_Group_interface(G::Group)
103103
end
104104
end
105105

106-
function ConformanceTests.test_GroupElem_interface(g::GEl, h::GEl) where {GEl<:GroupElem}
106+
function test_GroupElem_interface(g::GEl, h::GEl) where {GEl<:GroupElem}
107107

108108
@testset "GroupElem interface" begin
109109

ext/TestExt/Mutating-ops.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# The following functions should not expect that their input is a `NCRingElem` or similar.
22
# They should be usable in more general types, that don't even have a `parent/elem` correspondence
33

4-
function ConformanceTests.test_mutating_op_like_zero(f::Function, f!::Function, A)
4+
function test_mutating_op_like_zero(f::Function, f!::Function, A)
55
a = deepcopy(A)
66
a = f!(a)
77
@test equality(a, f(A))
88
end
99

10-
function ConformanceTests.test_mutating_op_like_neg(f::Function, f!::Function, A)
10+
function test_mutating_op_like_neg(f::Function, f!::Function, A)
1111
# initialize storage var with different values to check that its value is not used
1212
for z in [zero(A), deepcopy(A)]
1313
a = deepcopy(A)
@@ -21,7 +21,7 @@ function ConformanceTests.test_mutating_op_like_neg(f::Function, f!::Function, A
2121
@test equality(a, f(A))
2222
end
2323

24-
function ConformanceTests.test_mutating_op_like_add(f::Function, f!::Function, A, B, T = Any)
24+
function test_mutating_op_like_add(f::Function, f!::Function, A, B, T = Any)
2525
@req A isa T || B isa T "Invalid argument types"
2626

2727
# initialize storage var with different values to check that its value is not used
@@ -83,7 +83,7 @@ function ConformanceTests.test_mutating_op_like_add(f::Function, f!::Function, A
8383
end
8484
end
8585

86-
function ConformanceTests.test_mutating_op_like_addmul(f::Function, f!_::Function, Z, A, B, T = Any)
86+
function test_mutating_op_like_addmul(f::Function, f!_::Function, Z, A, B, T = Any)
8787
@req Z isa T "Invalid argument types"
8888
@req A isa T || B isa T "Invalid argument types"
8989

ext/TestExt/Rings-conformance-tests.jl

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# - test_MatAlgebra_interface(R)
1616

1717

18-
function ConformanceTests.test_NCRing_interface(R::AbstractAlgebra.NCRing; reps = 50)
18+
function test_NCRing_interface(R::AbstractAlgebra.NCRing; reps = 50)
1919

2020
T = elem_type(R)
2121

@@ -200,17 +200,17 @@ function ConformanceTests.test_NCRing_interface(R::AbstractAlgebra.NCRing; reps
200200
b = generate_element(R)::T
201201
c = generate_element(R)::T
202202

203-
ConformanceTests.test_mutating_op_like_zero(zero, zero!, a)
204-
ConformanceTests.test_mutating_op_like_zero(one, one!, a)
203+
test_mutating_op_like_zero(zero, zero!, a)
204+
test_mutating_op_like_zero(one, one!, a)
205205

206-
ConformanceTests.test_mutating_op_like_neg(-, neg!, a)
206+
test_mutating_op_like_neg(-, neg!, a)
207207

208-
ConformanceTests.test_mutating_op_like_add(+, add!, a, b)
209-
ConformanceTests.test_mutating_op_like_add(-, sub!, a, b)
210-
ConformanceTests.test_mutating_op_like_add(*, mul!, a, b)
208+
test_mutating_op_like_add(+, add!, a, b)
209+
test_mutating_op_like_add(-, sub!, a, b)
210+
test_mutating_op_like_add(*, mul!, a, b)
211211

212-
ConformanceTests.test_mutating_op_like_addmul((a, b, c) -> a + b*c, addmul!, a, b, c)
213-
ConformanceTests.test_mutating_op_like_addmul((a, b, c) -> a - b*c, submul!, a, b, c)
212+
test_mutating_op_like_addmul((a, b, c) -> a + b*c, addmul!, a, b, c)
213+
test_mutating_op_like_addmul((a, b, c) -> a - b*c, submul!, a, b, c)
214214
end
215215
end
216216
end
@@ -219,20 +219,20 @@ function ConformanceTests.test_NCRing_interface(R::AbstractAlgebra.NCRing; reps
219219
end
220220

221221

222-
function ConformanceTests.test_Ring_interface(R::AbstractAlgebra.Ring; reps = 50)
222+
function test_Ring_interface(R::AbstractAlgebra.Ring; reps = 50)
223223

224224
T = elem_type(R)
225225

226226
@testset "Ring interface for $(R) of type $(typeof(R))" begin
227227

228228
@test T <: RingElement
229229

230-
ConformanceTests.test_NCRing_interface(R; reps = reps)
230+
test_NCRing_interface(R; reps = reps)
231231

232232
@testset "Basic functionality for commutative rings only" begin
233233
@test isone(AbstractAlgebra.inv(one(R)))
234-
ConformanceTests.test_mutating_op_like_neg(AbstractAlgebra.inv, inv!, one(R))
235-
ConformanceTests.test_mutating_op_like_neg(AbstractAlgebra.inv, inv!, -one(R))
234+
test_mutating_op_like_neg(AbstractAlgebra.inv, inv!, one(R))
235+
test_mutating_op_like_neg(AbstractAlgebra.inv, inv!, -one(R))
236236
for i in 1:reps
237237
a = generate_element(R)::T
238238
b = generate_element(R)::T
@@ -247,7 +247,7 @@ function ConformanceTests.test_Ring_interface(R::AbstractAlgebra.Ring; reps = 50
247247
if T isa RingElem
248248
@test iszero(b) || equality((b*a) / b, a)
249249
end
250-
iszero(b) || ConformanceTests.test_mutating_op_like_add(divexact, divexact!, b*a, b)
250+
iszero(b) || test_mutating_op_like_add(divexact, divexact!, b*a, b)
251251
else
252252
try
253253
t = divexact(b*a, b)
@@ -282,13 +282,13 @@ function ConformanceTests.test_Ring_interface(R::AbstractAlgebra.Ring; reps = 50
282282
return nothing
283283
end
284284

285-
function ConformanceTests.test_Field_interface(R::AbstractAlgebra.Field; reps = 50)
285+
function test_Field_interface(R::AbstractAlgebra.Field; reps = 50)
286286

287287
T = elem_type(R)
288288

289289
@testset "Field interface for $(R) of type $(typeof(R))" begin
290290

291-
ConformanceTests.test_Ring_interface(R, reps = reps)
291+
test_Ring_interface(R, reps = reps)
292292

293293
@test iszero(R(characteristic(R)))
294294
@test iszero(characteristic(R) * one(R))
@@ -301,7 +301,7 @@ function ConformanceTests.test_Field_interface(R::AbstractAlgebra.Field; reps =
301301
if !is_zero(a)
302302
@test is_one(a * inv(a))
303303
@test is_one(inv(a) * a)
304-
ConformanceTests.test_mutating_op_like_neg(inv, inv!, a)
304+
test_mutating_op_like_neg(inv, inv!, a)
305305
end
306306
@test A == a
307307
end
@@ -310,7 +310,7 @@ function ConformanceTests.test_Field_interface(R::AbstractAlgebra.Field; reps =
310310
return nothing
311311
end
312312

313-
function ConformanceTests.test_EuclideanRing_interface(R::AbstractAlgebra.Ring; reps = 20)
313+
function test_EuclideanRing_interface(R::AbstractAlgebra.Ring; reps = 20)
314314

315315
T = elem_type(R)
316316

@@ -386,10 +386,10 @@ function ConformanceTests.test_EuclideanRing_interface(R::AbstractAlgebra.Ring;
386386
@test d == s*f + t*g
387387
@test gcdinv(f, g) == (d, s)
388388

389-
ConformanceTests.test_mutating_op_like_add(AbstractAlgebra.div, div!, f, m)
390-
ConformanceTests.test_mutating_op_like_add(mod, mod!, f, m)
391-
ConformanceTests.test_mutating_op_like_add(gcd, gcd!, f, m)
392-
ConformanceTests.test_mutating_op_like_add(lcm, lcm!, f, m)
389+
test_mutating_op_like_add(AbstractAlgebra.div, div!, f, m)
390+
test_mutating_op_like_add(mod, mod!, f, m)
391+
test_mutating_op_like_add(gcd, gcd!, f, m)
392+
test_mutating_op_like_add(lcm, lcm!, f, m)
393393
end
394394

395395
end
@@ -398,13 +398,13 @@ function ConformanceTests.test_EuclideanRing_interface(R::AbstractAlgebra.Ring;
398398
end
399399

400400

401-
function ConformanceTests.test_Poly_interface(Rx::AbstractAlgebra.PolyRing; reps = 30)
401+
function test_Poly_interface(Rx::AbstractAlgebra.PolyRing; reps = 30)
402402

403403
T = elem_type(Rx)
404404

405405
@testset "Poly interface for $(Rx) of type $(typeof(Rx))" begin
406406

407-
ConformanceTests.test_Ring_interface(Rx; reps = reps)
407+
test_Ring_interface(Rx; reps = reps)
408408

409409
x = gen(Rx)
410410
R = base_ring(Rx)
@@ -430,7 +430,7 @@ function ConformanceTests.test_Poly_interface(Rx::AbstractAlgebra.PolyRing; reps
430430
end
431431

432432
if R isa AbstractAlgebra.Field
433-
ConformanceTests.test_EuclideanRing_interface(Rx, reps = 2 + fld(reps, 2))
433+
test_EuclideanRing_interface(Rx, reps = 2 + fld(reps, 2))
434434
@testset "Half-GCD" begin
435435
for i in 1:reps
436436
a = generate_element(Rx)
@@ -480,7 +480,7 @@ function ConformanceTests.test_Poly_interface(Rx::AbstractAlgebra.PolyRing; reps
480480
end
481481

482482

483-
function ConformanceTests.test_MPoly_interface(Rxy::AbstractAlgebra.MPolyRing; reps = 30)
483+
function test_MPoly_interface(Rxy::AbstractAlgebra.MPolyRing; reps = 30)
484484

485485
# for simplicity, these tests for now assume exactly two generators
486486
@assert ngens(Rxy) == 2
@@ -489,7 +489,7 @@ function ConformanceTests.test_MPoly_interface(Rxy::AbstractAlgebra.MPolyRing; r
489489

490490
@testset "MPoly interface for $(Rxy) of type $(typeof(Rxy))" begin
491491

492-
ConformanceTests.test_Ring_interface(Rxy; reps = reps)
492+
test_Ring_interface(Rxy; reps = reps)
493493

494494
@testset "Basic functionality" begin
495495
@test symbols(Rxy) isa Vector{Symbol}
@@ -614,7 +614,7 @@ function ConformanceTests.test_MPoly_interface(Rxy::AbstractAlgebra.MPolyRing; r
614614
end
615615

616616

617-
function ConformanceTests.test_MatSpace_interface(S::MatSpace; reps = 20)
617+
function test_MatSpace_interface(S::MatSpace; reps = 20)
618618

619619
ST = elem_type(S)
620620
R = base_ring(S)
@@ -714,7 +714,7 @@ function ConformanceTests.test_MatSpace_interface(S::MatSpace; reps = 20)
714714
return nothing
715715
end
716716

717-
function ConformanceTests.test_MatAlgebra_interface(S::MatRing; reps = 20)
717+
function test_MatAlgebra_interface(S::MatRing; reps = 20)
718718

719719
ST = elem_type(S)
720720
R = base_ring(S)
@@ -724,7 +724,7 @@ function ConformanceTests.test_MatAlgebra_interface(S::MatRing; reps = 20)
724724

725725
@testset "MatRing interface for $(S) of type $(typeof(S))" begin
726726

727-
ConformanceTests.test_NCRing_interface(S, reps = reps)
727+
test_NCRing_interface(S, reps = reps)
728728

729729
@testset "Constructors" begin
730730
for k in 1:reps
@@ -766,19 +766,19 @@ function ConformanceTests.test_MatAlgebra_interface(S::MatRing; reps = 20)
766766
return nothing
767767
end
768768

769-
function ConformanceTests.test_Ring_interface_recursive(R::AbstractAlgebra.Ring; reps = 50)
770-
ConformanceTests.test_Ring_interface(R; reps = reps)
769+
function test_Ring_interface_recursive(R::AbstractAlgebra.Ring; reps = 50)
770+
test_Ring_interface(R; reps = reps)
771771
Rx, _ = polynomial_ring(R, :x)
772-
ConformanceTests.test_Poly_interface(Rx, reps = 2 + fld(reps, 2))
772+
test_Poly_interface(Rx, reps = 2 + fld(reps, 2))
773773
Rxy, _ = polynomial_ring(R, [:x, :y])
774-
ConformanceTests.test_MPoly_interface(Rxy, reps = 2 + fld(reps, 2))
774+
test_MPoly_interface(Rxy, reps = 2 + fld(reps, 2))
775775
S = matrix_ring(R, rand(0:3))
776-
ConformanceTests.test_MatAlgebra_interface(S, reps = 2 + fld(reps, 2))
776+
test_MatAlgebra_interface(S, reps = 2 + fld(reps, 2))
777777
S = matrix_space(R, rand(0:3), rand(0:3))
778-
ConformanceTests.test_MatSpace_interface(S, reps = 2 + fld(reps, 2))
778+
test_MatSpace_interface(S, reps = 2 + fld(reps, 2))
779779
end
780780

781-
function ConformanceTests.test_Field_interface_recursive(R::AbstractAlgebra.Field; reps = 50)
782-
ConformanceTests.test_Ring_interface_recursive(R, reps = reps)
783-
ConformanceTests.test_Field_interface(R, reps = reps)
781+
function test_Field_interface_recursive(R::AbstractAlgebra.Field; reps = 50)
782+
test_Ring_interface_recursive(R, reps = reps)
783+
test_Field_interface(R, reps = reps)
784784
end

ext/TestExt/TestExt.jl

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,22 @@ using .ConformanceTests:
99
adhoc_partner_rings,
1010
generate_element
1111

12+
import .ConformanceTests: test_mutating_op_like_zero
13+
import .ConformanceTests: test_mutating_op_like_neg
14+
import .ConformanceTests: test_mutating_op_like_add
15+
import .ConformanceTests: test_mutating_op_like_addmul
16+
17+
import .ConformanceTests: test_NCRing_interface
18+
import .ConformanceTests: test_Ring_interface
19+
import .ConformanceTests: test_Field_interface
20+
import .ConformanceTests: test_EuclideanRing_interface
21+
import .ConformanceTests: test_Poly_interface
22+
import .ConformanceTests: test_MPoly_interface
23+
import .ConformanceTests: test_MatSpace_interface
24+
import .ConformanceTests: test_MatAlgebra_interface
25+
import .ConformanceTests: test_Ring_interface_recursive
26+
import .ConformanceTests: test_Field_interface_recursive
27+
1228
include("Groups-conformance-tests.jl")
1329
include("Mutating-ops.jl")
1430
include("Rings-conformance-tests.jl")

0 commit comments

Comments
 (0)