diff --git a/src/SymbolicNumericIntegration.jl b/src/SymbolicNumericIntegration.jl index 8795d82..1730e9f 100644 --- a/src/SymbolicNumericIntegration.jl +++ b/src/SymbolicNumericIntegration.jl @@ -5,7 +5,7 @@ using TermInterface: iscall using SymbolicUtils using SymbolicUtils: operation, arguments using Symbolics -using Symbolics: value, get_variables, expand_derivatives, coeff, Equation +using Symbolics: value, get_variables, expand_derivatives, Equation using SymbolicUtils.Rewriters using SymbolicUtils: issym, BasicSymbolic diff --git a/test/qa/Project.toml b/test/qa/Project.toml index de0ad49..4855676 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -1,7 +1,7 @@ [deps] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" -SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" +SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" SymbolicNumericIntegration = "78aadeae-fbc0-11eb-17b6-c7ec0477ba9e" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" @@ -11,5 +11,6 @@ SymbolicNumericIntegration = {path = "../.."} [compat] Aqua = "0.8" JET = "0.9,0.10,0.11" +SciMLTesting = "1.7" Test = "1" julia = "1.10" diff --git a/test/qa/qa.jl b/test/qa/qa.jl index 9e2c6b3..86b11b5 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,18 +1,34 @@ -using SafeTestsets +using SymbolicNumericIntegration, Test +using JET +using SciMLTesting -@safetestset "Aqua" begin - using SymbolicNumericIntegration - using Aqua - using Test - - Aqua.test_all(SymbolicNumericIntegration; piracies = false) - @test_broken false # Aqua piracy: Base.signbit(::Complex)/signbit(::SymbolicUtils.Sym) in src/integral.jl + DataDrivenSparse.active_set! in src/sparse.jl — see https://github.com/SciML/SymbolicNumericIntegration.jl/issues/156 -end - -@safetestset "JET" begin - using SymbolicNumericIntegration - using JET - using Test - - JET.test_package(SymbolicNumericIntegration; target_defined_modules = true) -end +run_qa( + SymbolicNumericIntegration; + explicit_imports = true, + jet_kwargs = (; target_defined_modules = true), + # Aqua piracy: Base.signbit(::Complex)/signbit(::SymbolicUtils.Sym) in + # src/integral.jl + DataDrivenSparse.active_set! in src/sparse.jl + # https://github.com/SciML/SymbolicNumericIntegration.jl/issues/156 + aqua_broken = (:piracies,), + ei_kwargs = (; + # Re-exports: accessed from the re-exporting module rather than the owner. + # coef -> StatsAPI (via DataDrivenSparse); toexpr -> SymbolicUtils.Code + # (via Symbolics). Neither owner is a SciML make-public target. + all_qualified_accesses_via_owners = (; + ignore = (:coef, :toexpr), + ), + # Non-public names of upstream packages accessed via qualification. + # AbstractDataDrivenAlgorithm: DataDrivenDiffEq; active_set!, coef: + # DataDrivenSparse; toexpr: Symbolics. + all_qualified_accesses_are_public = (; + ignore = ( + :AbstractDataDrivenAlgorithm, :active_set!, :coef, :toexpr, + ), + ), + ), + # Heavy `using` of the Symbolics/SymbolicUtils/DataDriven stacks (macros + + # module bindings used for qualified access) — tracked for a follow-up + # explicit-import pass rather than a risky mass refactor. + # https://github.com/SciML/SymbolicNumericIntegration.jl/issues/164 + ei_broken = (:no_implicit_imports,), +)