Skip to content

Commit 7b00199

Browse files
authored
test: add potential code quality tests (#250)
1 parent bdc0576 commit 7b00199

File tree

4 files changed

+63
-13
lines changed

4 files changed

+63
-13
lines changed

Project.toml

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,35 @@ Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7"
1818
TermInterface = "8ea1fca8-c5ef-4a55-8b96-4e9afe9c9a3c"
1919

2020
[compat]
21+
Aqua = "0.8"
22+
CheckConcreteStructs = "0.1"
2123
Combinatorics = "1"
24+
ExplicitImports = "1.12"
25+
JET = "0.9"
2226
LaTeXStrings = "1"
2327
Latexify = "0.13, 0.14, 0.15, 0.16"
24-
LinearAlgebra = "1.6"
28+
LinearAlgebra = "1.10"
2529
MacroTools = "0.5"
2630
ModelingToolkit = "9"
31+
OrdinaryDiffEq = "6"
32+
QuantumOptics = "1"
2733
QuantumOpticsBase = "0.4, 0.5"
34+
Random = "1.10"
2835
Reexport = "1"
2936
SciMLBase = "1, 2"
3037
SecondQuantizedAlgebra = "0.1"
38+
SteadyStateDiffEq = "2"
3139
SymbolicUtils = "3.6 - 3.24"
3240
Symbolics = "6"
3341
TermInterface = "2"
34-
julia = "1.6"
42+
Test = "1.10"
43+
julia = "1.10"
3544

3645
[extras]
3746
Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
47+
CheckConcreteStructs = "73c92db5-9da6-4938-911a-6443a7e94a58"
48+
ExplicitImports = "7d51a73a-1435-4ff3-83d9-f097790105c7"
49+
JET = "c3a54625-cd67-489e-a8e7-0a5a0ff4e31b"
3850
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
3951
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
4052
QuantumOptics = "6e0679c1-51ea-5a7c-ac74-d61b76210b0c"
@@ -43,4 +55,4 @@ SteadyStateDiffEq = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f"
4355
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
4456

4557
[targets]
46-
test = ["OrdinaryDiffEq", "SteadyStateDiffEq", "ModelingToolkit", "QuantumOptics", "Random", "Test", "Aqua"]
58+
test = ["OrdinaryDiffEq", "SteadyStateDiffEq", "ModelingToolkit", "QuantumOptics", "Random", "Test", "Aqua", "ExplicitImports", "JET", "CheckConcreteStructs"]

test/runtests.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
names = [
2-
"test_aqua.jl"
2+
"test_code_quality.jl"
33
"test_fock.jl"
44
"test_nlevel.jl"
55
"test_spin.jl"

test/test_aqua.jl

Lines changed: 0 additions & 9 deletions
This file was deleted.

test/test_code_quality.jl

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using QuantumCumulants, Test
2+
3+
@testset "best practices" begin
4+
using Aqua
5+
6+
Aqua.test_ambiguities([QuantumCumulants]; broken = true)
7+
Aqua.test_piracies(QuantumCumulants; broken = true)
8+
Aqua.test_all(QuantumCumulants; ambiguities = false, piracies = false)
9+
end
10+
11+
@testset "ExplicitImports" begin
12+
using ExplicitImports
13+
# @test check_no_implicit_imports(QuantumCumulants) == nothing
14+
@test check_all_explicit_imports_via_owners(QuantumCumulants) == nothing
15+
# @test check_all_explicit_imports_are_public(QuantumCumulants) == nothing
16+
# @test check_no_stale_explicit_imports(QuantumCumulants) == nothing
17+
# @test check_all_qualified_accesses_via_owners(QuantumCumulants) == nothing
18+
# @test check_all_qualified_accesses_are_public(QuantumCumulants) == nothing
19+
# @test check_no_self_qualified_accesses(QuantumCumulants) == nothing
20+
end
21+
22+
if isempty(VERSION.prerelease)
23+
@testset "Code linting" begin
24+
using JET
25+
# JET.test_package(SecondQuantizedAlgebra; target_defined_modules=true)
26+
rep = report_package("QuantumCumulants")
27+
@show rep
28+
@test length(JET.get_reports(rep)) <= 306
29+
@test_broken length(JET.get_reports(rep)) == 0
30+
end
31+
end
32+
33+
@testset "Concretely typed" begin
34+
import QuantumCumulants as QC
35+
using CheckConcreteStructs
36+
37+
all_concrete(QC.CorrelationFunction)
38+
all_concrete(QC.Spectrum)
39+
40+
all_concrete(QC.MeanfieldEquations)
41+
all_concrete(QC.IndexedMeanfieldEquations)
42+
all_concrete(QC.EvaledMeanfieldEquations)
43+
all_concrete(QC.ScaledMeanfieldEquations)
44+
45+
all_concrete(QC.IndexedMeanfieldNoiseEquations)
46+
all_concrete(QC.MeanfieldNoiseEquations)
47+
end

0 commit comments

Comments
 (0)