|
| 1 | +using ADTypes |
| 2 | +using DifferentiationInterface |
| 3 | +import DifferentiationInterface as DI |
| 4 | +using Test |
| 5 | + |
| 6 | +@testset "SecondOrder" begin |
| 7 | + backend = SecondOrder(AutoForwardDiff(), AutoZygote()) |
| 8 | + @test ADTypes.mode(backend) isa ADTypes.ForwardMode |
| 9 | + @test DifferentiationInterface.outer(backend) isa AutoForwardDiff |
| 10 | + @test DifferentiationInterface.inner(backend) isa AutoZygote |
| 11 | +end |
| 12 | + |
| 13 | +@testset "Sparse" begin |
| 14 | + for backend in [AutoForwardDiff(), AutoZygote()] |
| 15 | + sparse_backend = AutoSparse(backend) |
| 16 | + @test ADTypes.mode(sparse_backend) == ADTypes.mode(backend) |
| 17 | + @test check_available(sparse_backend) == check_available(backend) |
| 18 | + @test DI.twoarg_support(sparse_backend) == DI.twoarg_support(backend) |
| 19 | + @test DI.pushforward_performance(sparse_backend) == |
| 20 | + DI.pushforward_performance(backend) |
| 21 | + @test DI.pullback_performance(sparse_backend) == DI.pullback_performance(backend) |
| 22 | + end |
| 23 | + |
| 24 | + for backend in [ |
| 25 | + SecondOrder(AutoForwardDiff(), AutoZygote()), |
| 26 | + SecondOrder(AutoZygote(), AutoForwardDiff()), |
| 27 | + ] |
| 28 | + sparse_backend = AutoSparse(backend) |
| 29 | + @test ADTypes.mode(sparse_backend) == ADTypes.mode(backend) |
| 30 | + @test DI.hvp_mode(sparse_backend) == DI.hvp_mode(backend) |
| 31 | + end |
| 32 | +end |
| 33 | + |
| 34 | +@testset "Batch size" begin |
| 35 | + @test DI.pick_batchsize(AutoZygote(), 2) == 1 |
| 36 | +end |
0 commit comments