Skip to content

Commit 7bd69fb

Browse files
committed
Add tests
1 parent d8905f5 commit 7bd69fb

3 files changed

Lines changed: 40 additions & 8 deletions

File tree

DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/onearg.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ function DI.prepare_pushforward_nokwarg(
2727
absstep = if isnothing(backend.absstep)
2828
relstep
2929
else
30-
backend.relstep
30+
backend.absstep
3131
end
3232
dir = backend.dir
3333
return FiniteDiffOneArgPushforwardPrep(_sig, cache, relstep, absstep, dir)
@@ -144,7 +144,7 @@ function DI.prepare_derivative_nokwarg(
144144
absstep = if isnothing(backend.absstep)
145145
relstep
146146
else
147-
backend.relstep
147+
backend.absstep
148148
end
149149
dir = backend.dir
150150
return FiniteDiffOneArgDerivativePrep(_sig, cache, relstep, absstep, dir)
@@ -269,7 +269,7 @@ function DI.prepare_gradient_nokwarg(
269269
absstep = if isnothing(backend.absstep)
270270
relstep
271271
else
272-
backend.relstep
272+
backend.absstep
273273
end
274274
dir = backend.dir
275275
return FiniteDiffGradientPrep(_sig, cache, relstep, absstep, dir)
@@ -359,7 +359,7 @@ function DI.prepare_jacobian_nokwarg(
359359
absstep = if isnothing(backend.absstep)
360360
relstep
361361
else
362-
backend.relstep
362+
backend.absstep
363363
end
364364
dir = backend.dir
365365
return FiniteDiffOneArgJacobianPrep(_sig, cache, relstep, absstep, dir)
@@ -463,7 +463,7 @@ function DI.prepare_hessian_nokwarg(
463463
relstep_h = if isnothing(backend.relstep)
464464
default_relstep(fdhtype(backend), eltype(x))
465465
else
466-
backend.relstep
466+
backend.absstep
467467
end
468468
absstep_g = isnothing(backend.absstep) ? relstep_g : backend.absstep
469469
absstep_h = isnothing(backend.absstep) ? relstep_h : backend.absstep

DifferentiationInterface/ext/DifferentiationInterfaceFiniteDiffExt/twoarg.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ function DI.prepare_pushforward_nokwarg(
3131
absstep = if isnothing(backend.absstep)
3232
relstep
3333
else
34-
backend.relstep
34+
backend.absstep
3535
end
3636
dir = backend.dir
3737
return FiniteDiffTwoArgPushforwardPrep(_sig, cache, relstep, absstep, dir)
@@ -175,7 +175,7 @@ function DI.prepare_derivative_nokwarg(
175175
absstep = if isnothing(backend.absstep)
176176
relstep
177177
else
178-
backend.relstep
178+
backend.absstep
179179
end
180180
dir = backend.dir
181181
return FiniteDiffTwoArgDerivativePrep(_sig, cache, relstep, absstep, dir)
@@ -295,7 +295,7 @@ function DI.prepare_jacobian_nokwarg(
295295
absstep = if isnothing(backend.absstep)
296296
relstep
297297
else
298-
backend.relstep
298+
backend.absstep
299299
end
300300
dir = backend.dir
301301
return FiniteDiffTwoArgJacobianPrep(_sig, cache, relstep, absstep, dir)

DifferentiationInterface/test/Back/FiniteDiff/test.jl

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,35 @@ end
7272
logging=LOGGING,
7373
)
7474
end;
75+
76+
@testset "Step size" begin # fix 811
77+
backend = AutoFiniteDiff(; absstep=1000, relstep=0.1)
78+
preps = [
79+
prepare_pushforward(identity, backend, 1.0, (1.0,))
80+
prepare_pushforward(copyto!, [0.0], backend, [1.0], ([1.0],))
81+
prepare_derivative(identity, backend, 1.0)
82+
prepare_derivative((y, x) -> y .= x, [0.0], backend, 1.0)
83+
prepare_gradient(sum, backend, [1.0])
84+
prepare_jacobian(identity, backend, [1.0])
85+
prepare_jacobian(copyto!, [0.0], backend, [1.0])
86+
]
87+
for prep in preps
88+
@test prep.relstep == 0.1
89+
@test prep.absstep == 1000
90+
end
91+
92+
backend = AutoFiniteDiff(; relstep=0.1)
93+
preps = [
94+
prepare_pushforward(identity, backend, 1.0, (1.0,))
95+
prepare_pushforward(copyto!, [0.0], backend, [1.0], ([1.0],))
96+
prepare_derivative(identity, backend, 1.0)
97+
prepare_derivative((y, x) -> y .= x, [0.0], backend, 1.0)
98+
prepare_gradient(sum, backend, [1.0])
99+
prepare_jacobian(identity, backend, [1.0])
100+
prepare_jacobian(copyto!, [0.0], backend, [1.0])
101+
]
102+
for prep in preps
103+
@test prep.relstep == 0.1
104+
@test prep.absstep == 0.1
105+
end
106+
end

0 commit comments

Comments
 (0)