diff --git a/lib/OptimizationBase/Project.toml b/lib/OptimizationBase/Project.toml index 8505dce67..adcdb2fda 100644 --- a/lib/OptimizationBase/Project.toml +++ b/lib/OptimizationBase/Project.toml @@ -43,80 +43,44 @@ OptimizationZygoteExt = "Zygote" OptimizationChainRulesCoreExt = "ChainRulesCore" OptimizationMooncakeExt = "Mooncake" -[sources] -OptimizationLBFGSB = {path = "../OptimizationLBFGSB"} -OptimizationManopt = {path = "../OptimizationManopt"} - [compat] ADTypes = "1.18" -Aqua = "0.8" ArrayInterface = "7.6" -BenchmarkTools = "1" ChainRulesCore = "1" -ComponentArrays = ">= 0.13.9" DifferentiationInterface = "0.7.13" DocStringExtensions = "0.9.5" Enzyme = "0.13.2" FastClosures = "0.3" FiniteDiff = "2.12" ForwardDiff = "0.10.26, 1" -IterTools = ">= 1.3.0" LinearAlgebra = "1.9, 1.10" -Lux = "1.12" MLDataDevices = "1" MLUtils = "0.4" Mooncake = "0.4.138, 0.5" -Manifolds = "0.10, 0.11" -ModelingToolkit = "11" -Optim = ">= 1.4.1" -Optimisers = ">= 0.2.5" -OptimizationLBFGSB = "1.1" -OptimizationManopt = "1.1" -Pkg = "1" PrecompileTools = "1" -Random = "1.10" Reexport = "1.2" ReverseDiff = "1.14" SafeTestsets = ">= 0.0.1" SciMLBase = "2.122.1, 3" SciMLLogging = "1.10.1, 2" +SciMLTesting = "2.1" SparseArrays = "1.10" SparseConnectivityTracer = "0.6, 1" SparseMatrixColorings = "0.4" SymbolicAnalysis = "0.3" SymbolicIndexingInterface = "0.3.46" -Symbolics = "7" Test = "1.10" -Tracker = "0.2" Zygote = "0.6.67, 0.7" julia = "1.10" [extras] -Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595" -BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" -Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" -IterTools = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -Lux = "b2108857-7c20-44ae-9111-449ecde12c47" -MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" -Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e" -ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" -Optim = "429524aa-4258-5aef-a3af-852621145aeb" -Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" -OptimizationLBFGSB = "22f7324a-a79d-40f2-bebe-3af60c77bd15" -OptimizationManopt = "e57b7fff-7ee7-4550-b4f0-90e9476e9fb6" -Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SafeTestsets = "1bc83da4-3b8d-516f-aca4-4fe02f6d838f" -SymbolicAnalysis = "4297ee4d-0239-47d8-ba5d-195ecdf594fe" -Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" +SciMLTesting = "09d9d899-5365-40a9-917a-5f67fddea283" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" -Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [targets] -test = ["Aqua", "BenchmarkTools", "ChainRulesCore", "ComponentArrays", "Enzyme", "FiniteDiff", "ForwardDiff", "IterTools", "Lux", "MLUtils", "Manifolds", "ModelingToolkit", "Optim", "Optimisers", "OptimizationLBFGSB", "OptimizationManopt", "Pkg", "Random", "ReverseDiff", "SafeTestsets", "SymbolicAnalysis", "Symbolics", "Test", "Tracker", "Zygote"] +test = ["FiniteDiff", "ForwardDiff", "ReverseDiff", "SafeTestsets", "SciMLTesting", "Test", "Zygote"] diff --git a/lib/OptimizationBase/test/AD/Project.toml b/lib/OptimizationBase/test/AD/Project.toml new file mode 100644 index 000000000..d1015b904 --- /dev/null +++ b/lib/OptimizationBase/test/AD/Project.toml @@ -0,0 +1,53 @@ +[deps] +ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +DifferentiationInterface = "a0c0ee7d-e4b9-4e03-894e-1c5f64a51d63" +Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" +FiniteDiff = "6a86dc24-6348-571c-b903-95158fe2bd41" +ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" +LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" +Manifolds = "1cead3c2-87b3-11e9-0ccd-23c62b72b94e" +ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78" +OptimizationBase = "bca83a33-5cc9-4baa-983d-23429ab6bcbb" +OptimizationLBFGSB = "22f7324a-a79d-40f2-bebe-3af60c77bd15" +OptimizationManopt = "e57b7fff-7ee7-4550-b4f0-90e9476e9fb6" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" +SciMLBase = "0bca4576-84f4-4d90-8ffe-ffa030f20462" +SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +SymbolicAnalysis = "4297ee4d-0239-47d8-ba5d-195ecdf594fe" +Symbolics = "0c5d862f-8b57-4792-8d23-62f2024744c7" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" +Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[sources] +OptimizationBase = {path = "../.."} +OptimizationLBFGSB = {path = "../../../OptimizationLBFGSB"} +OptimizationManopt = {path = "../../../OptimizationManopt"} + +[compat] +ADTypes = "1.18" +ChainRulesCore = "1" +DifferentiationInterface = "0.7.13" +Enzyme = "0.13.2" +FiniteDiff = "2.12" +ForwardDiff = "0.10.26, 1" +LinearAlgebra = "1.10" +MLUtils = "0.4" +Manifolds = "0.10, 0.11" +ModelingToolkit = "11" +OptimizationBase = "5" +OptimizationLBFGSB = "1.1" +OptimizationManopt = "1.1" +Random = "1.10" +ReverseDiff = "1.14" +SciMLBase = "2.122.1, 3" +SparseArrays = "1.10" +SymbolicAnalysis = "0.3" +Symbolics = "7" +Test = "1.10" +Tracker = "0.2" +Zygote = "0.6.67, 0.7" +julia = "1.10" diff --git a/lib/OptimizationBase/test/adtests.jl b/lib/OptimizationBase/test/AD/adtests.jl similarity index 100% rename from lib/OptimizationBase/test/adtests.jl rename to lib/OptimizationBase/test/AD/adtests.jl diff --git a/lib/OptimizationBase/test/cvxtest.jl b/lib/OptimizationBase/test/AD/cvxtest.jl similarity index 100% rename from lib/OptimizationBase/test/cvxtest.jl rename to lib/OptimizationBase/test/AD/cvxtest.jl diff --git a/lib/OptimizationBase/test/dual_tolerant_tests.jl b/lib/OptimizationBase/test/AD/dual_tolerant_tests.jl similarity index 100% rename from lib/OptimizationBase/test/dual_tolerant_tests.jl rename to lib/OptimizationBase/test/AD/dual_tolerant_tests.jl diff --git a/lib/OptimizationBase/test/AD/tests.jl b/lib/OptimizationBase/test/AD/tests.jl new file mode 100644 index 000000000..ed6459d73 --- /dev/null +++ b/lib/OptimizationBase/test/AD/tests.jl @@ -0,0 +1,7 @@ +using Test + +@testset "OptimizationBase AD" begin + include("adtests.jl") + include("dual_tolerant_tests.jl") + include("cvxtest.jl") +end diff --git a/lib/OptimizationBase/test/core_tests.jl b/lib/OptimizationBase/test/core_tests.jl index fbb6fba03..21ae07708 100644 --- a/lib/OptimizationBase/test/core_tests.jl +++ b/lib/OptimizationBase/test/core_tests.jl @@ -2,9 +2,6 @@ using OptimizationBase using Test @testset "OptimizationBase.jl" begin - include("adtests.jl") - include("dual_tolerant_tests.jl") - include("cvxtest.jl") include("matrixvalued.jl") include("solver_missing_error_messages.jl") include("lag_h_sigma_zero_test.jl") diff --git a/lib/OptimizationBase/test/runtests.jl b/lib/OptimizationBase/test/runtests.jl index 89b4c9bae..a2d6a3eb1 100644 --- a/lib/OptimizationBase/test/runtests.jl +++ b/lib/OptimizationBase/test/runtests.jl @@ -1,24 +1,14 @@ -using Pkg -using SafeTestsets - -const TEST_GROUP = get(ENV, "OPTIMIZATION_TEST_GROUP", "All") - -# QA (Aqua + JET) runs in an isolated environment (test/qa) so its tooling deps -# never enter the main test target's resolve. On Julia < 1.11 the [sources] table -# is ignored, so develop the package by path to test the PR branch code. -function activate_qa_env() - Pkg.activate(joinpath(@__DIR__, "qa")) - if VERSION < v"1.11.0-DEV.0" - Pkg.develop(PackageSpec(path = dirname(@__DIR__))) - end - return Pkg.instantiate() -end - -if TEST_GROUP == "Core" || TEST_GROUP == "All" - @time @safetestset "Core" include("core_tests.jl") -end - -if TEST_GROUP == "QA" - activate_qa_env() - @safetestset "Quality Assurance" include("qa/qa.jl") -end +using SciMLTesting + +run_tests(; + env = "OPTIMIZATION_TEST_GROUP", + core = joinpath(@__DIR__, "core_tests.jl"), + groups = Dict( + "AD" => (; + env = joinpath(@__DIR__, "AD"), + body = joinpath(@__DIR__, "AD", "tests.jl"), + ), + ), + qa = (; env = joinpath(@__DIR__, "qa"), body = joinpath(@__DIR__, "qa", "qa.jl")), + all = ["Core"], +) diff --git a/lib/OptimizationBase/test/test_groups.toml b/lib/OptimizationBase/test/test_groups.toml index 1fe84cd44..944c34d8e 100644 --- a/lib/OptimizationBase/test/test_groups.toml +++ b/lib/OptimizationBase/test/test_groups.toml @@ -1,5 +1,9 @@ [Core] versions = ["lts", "1", "pre"] +# Enzyme's Julia prerelease support can lag its registered releases. +[AD] +versions = ["lts", "1"] + [QA] versions = ["lts", "1"]