diff --git a/ext/BandedMatricesExt.jl b/ext/BandedMatricesExt.jl index 1ff6a12..eb9f51b 100644 --- a/ext/BandedMatricesExt.jl +++ b/ext/BandedMatricesExt.jl @@ -1,7 +1,7 @@ module BandedMatricesExt -using SparseMatrixIdentification -using BandedMatrices +using SparseMatrixIdentification: SparseMatrixIdentification +using BandedMatrices: BandedMatrix function __init__() return SparseMatrixIdentification._bandedmatrices_loaded[] = true diff --git a/ext/BlockBandedMatricesExt.jl b/ext/BlockBandedMatricesExt.jl index ba04884..c6fb2a5 100644 --- a/ext/BlockBandedMatricesExt.jl +++ b/ext/BlockBandedMatricesExt.jl @@ -1,8 +1,7 @@ module BlockBandedMatricesExt -using SparseMatrixIdentification -using BlockBandedMatrices -using BandedMatrices +using SparseMatrixIdentification: SparseMatrixIdentification +using BlockBandedMatrices: BlockBandedMatrix function __init__() return SparseMatrixIdentification._blockbandedmatrices_loaded[] = true diff --git a/ext/FastAlmostBandedMatricesExt.jl b/ext/FastAlmostBandedMatricesExt.jl index 9e4377a..7aa19d5 100644 --- a/ext/FastAlmostBandedMatricesExt.jl +++ b/ext/FastAlmostBandedMatricesExt.jl @@ -1,8 +1,8 @@ module FastAlmostBandedMatricesExt -using SparseMatrixIdentification -using FastAlmostBandedMatrices -using BandedMatrices +using SparseMatrixIdentification: SparseMatrixIdentification +using FastAlmostBandedMatrices: AlmostBandedMatrix +using BandedMatrices: BandedMatrix function __init__() return SparseMatrixIdentification._fastalmostbandedmatrices_loaded[] = true diff --git a/ext/SpecialMatricesExt.jl b/ext/SpecialMatricesExt.jl index 6a9bf91..ef9d971 100644 --- a/ext/SpecialMatricesExt.jl +++ b/ext/SpecialMatricesExt.jl @@ -1,7 +1,7 @@ module SpecialMatricesExt -using SparseMatrixIdentification -using SpecialMatrices +using SparseMatrixIdentification: SparseMatrixIdentification +using SpecialMatrices: Cauchy, Hilbert, Strang, Vandermonde function __init__() return SparseMatrixIdentification._specialmatrices_loaded[] = true diff --git a/ext/ToeplitzMatricesExt.jl b/ext/ToeplitzMatricesExt.jl index f9fcc01..9ba2bae 100644 --- a/ext/ToeplitzMatricesExt.jl +++ b/ext/ToeplitzMatricesExt.jl @@ -1,7 +1,7 @@ module ToeplitzMatricesExt -using SparseMatrixIdentification -using ToeplitzMatrices +using SparseMatrixIdentification: SparseMatrixIdentification +using ToeplitzMatrices: Toeplitz function __init__() return SparseMatrixIdentification._toeplitzmatrices_loaded[] = true diff --git a/test/qa/Project.toml b/test/qa/Project.toml index b31d0b9..6a277b3 100644 --- a/test/qa/Project.toml +++ b/test/qa/Project.toml @@ -1,13 +1,23 @@ [deps] Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" +BandedMatrices = "aae01518-5342-5314-be14-df237901396f" +BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" +FastAlmostBandedMatrices = "9d29842c-ecb8-4973-b1e9-a27b1157504e" JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b" SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" SparseMatrixIdentification = "2607229e-3272-44a7-bc4a-cd97a328dfbf" +SpecialMatrices = "928aab9d-ef52-54ac-8ca1-acd7ca42c160" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +ToeplitzMatrices = "c751599d-da0a-543b-9d20-d0a503d91d24" [compat] Aqua = "0.8" +BandedMatrices = "1.10.2" +BlockBandedMatrices = "0.13.4" +FastAlmostBandedMatrices = "0.1.5" JET = "0.9,0.10,0.11" SciMLTesting = "2.4" +SpecialMatrices = "3.1.0" Test = "1" +ToeplitzMatrices = "0.8.5" julia = "1.10" diff --git a/test/qa/qa.jl b/test/qa/qa.jl index ae7bd58..7e74b85 100644 --- a/test/qa/qa.jl +++ b/test/qa/qa.jl @@ -1,4 +1,33 @@ using SciMLTesting, SparseMatrixIdentification using JET -run_qa(SparseMatrixIdentification) +# ExplicitImports only sees an extension module once its trigger packages are loaded +# (`Base.get_extension` returns `nothing` otherwise), so load every weakdep here to put +# the extensions under QA. The `SemiseparableMatrices` weakdep has no `[extensions]` +# entry, so there is no extension module for it to scan. +using BandedMatrices, BlockBandedMatrices, FastAlmostBandedMatrices +using SpecialMatrices, ToeplitzMatrices + +run_qa( + SparseMatrixIdentification; + ei_kwargs = (; + all_qualified_accesses_are_public = (; + # Owner: SparseMatrixIdentification itself. Every one of these is the + # package's own internals reached from its own extension modules, which is + # the only way an extension can hook into its parent: the `try_*` stubs are + # the methods each extension adds, the `_*_loaded` `Ref`s are the flags the + # extension's `__init__` flips, and the `is_*`/`detect_*` predicates are the + # structure detectors the extension dispatches on. None of them are declared + # `public`, and there is no public spelling to use instead. + ignore = ( + :_bandedmatrices_loaded, :_blockbandedmatrices_loaded, + :_fastalmostbandedmatrices_loaded, :_specialmatrices_loaded, + :_toeplitzmatrices_loaded, + :try_almostbanded, :try_banded, :try_blockbanded, + :try_special_matrices, :try_toeplitz, + :detect_block_size, :is_almost_banded, :is_banded, :is_cauchy, + :is_hilbert, :is_strang, :is_toeplitz, :is_vandermonde, + ), + ), + ), +)