Collection of utilities for testing forward- and reverse-mode AD sensitivities.
ChainRulesTestUtils.jl
is designed to help you test ChainRulesCore.frule
and ChainRulesCore.rrule
methods.
The main entry points are ChainRulesTestUtils.frule_test
, ChainRulesTestUtils.rrule_test
, and ChainRulesTestUtils.test_scalar
Currently this is done via testing the rules against numerical differentiation (using FiniteDifferences.jl
).
ChainRulesTestUtils.jl
is separate from ChainRulesCore.jl
so that it can be a test-only dependency, allowing it to have potentially heavy dependencies, while keeping ChainRulesCore.jl
as light-weight as possible.