@@ -2,6 +2,8 @@ using ADTypes
22using ADTypes: mode
33using DifferentiationInterface
44using DifferentiationInterface:
5+ AutoSimpleFiniteDiff,
6+ AutoReverseFromPrimitive,
57 inner,
68 outer,
79 forward_backend,
@@ -11,39 +13,38 @@ using DifferentiationInterface:
1113 pullback_performance,
1214 hvp_mode
1315import DifferentiationInterface as DI
14- using ForwardDiff: ForwardDiff
15- using Zygote: Zygote
1616using Test
1717
18+ fb = AutoSimpleFiniteDiff ()
19+ rb = AutoReverseFromPrimitive (AutoSimpleFiniteDiff ())
20+
1821@testset " SecondOrder" begin
19- backend = SecondOrder (AutoForwardDiff (), AutoZygote () )
20- @test ADTypes . mode (backend) isa ADTypes . ForwardMode
21- @test outer (backend) isa AutoForwardDiff
22- @test inner (backend) isa AutoZygote
22+ backend = SecondOrder (fb, rb )
23+ @test check_available (backend)
24+ @test outer (backend) isa AutoSimpleFiniteDiff
25+ @test inner (backend) isa AutoReverseFromPrimitive
2326 @test mode (backend) isa ADTypes. ForwardMode
24- @test ! Bool (inplace_support (backend))
27+ @test Bool (inplace_support (backend))
2528 @test_throws ArgumentError pushforward_performance (backend)
2629 @test_throws ArgumentError pullback_performance (backend)
27- @test check_available (backend)
2830end
2931
3032@testset " MixedMode" begin
31- backend = MixedMode (AutoForwardDiff (), AutoZygote ())
32- @test ADTypes. mode (backend) isa DifferentiationInterface. ForwardAndReverseMode
33- @test forward_backend (backend) isa AutoForwardDiff
34- @test reverse_backend (backend) isa AutoZygote
35- @test ! Bool (inplace_support (backend))
33+ backend = MixedMode (fb, rb)
34+ @test check_available (backend)
35+ @test mode (backend) isa DifferentiationInterface. ForwardAndReverseMode
36+ @test forward_backend (backend) isa AutoSimpleFiniteDiff
37+ @test reverse_backend (backend) isa AutoReverseFromPrimitive
38+ @test Bool (inplace_support (backend))
3639 @test_throws MethodError pushforward_performance (backend)
3740 @test_throws MethodError pullback_performance (backend)
38- @test check_available (backend)
3941end
4042
4143@testset " Sparse" begin
42- for dense_backend in [AutoForwardDiff (), AutoZygote () ]
44+ for dense_backend in [fb, rb ]
4345 backend = AutoSparse (dense_backend)
44- @test ADTypes. mode (backend) == ADTypes. mode (dense_backend)
45- @test check_available (backend) == check_available (dense_backend)
46- @test inplace_support (backend) == inplace_support (dense_backend)
46+ @test mode (backend) == ADTypes. mode (dense_backend)
47+ @test Bool (inplace_support (backend))
4748 @test_throws ArgumentError pushforward_performance (backend)
4849 @test_throws ArgumentError pullback_performance (backend)
4950 @test_throws ArgumentError hvp_mode (backend)
0 commit comments