From b75323b1d46a5f2f7e9981c298c238235f21fc42 Mon Sep 17 00:00:00 2001 From: Manuel Drehwald Date: Thu, 11 Apr 2024 18:11:22 -0400 Subject: [PATCH] add self duplicated test --- samples/tests/reverse/mod.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/samples/tests/reverse/mod.rs b/samples/tests/reverse/mod.rs index f132f11..5b93cf1 100644 --- a/samples/tests/reverse/mod.rs +++ b/samples/tests/reverse/mod.rs @@ -19,6 +19,28 @@ samples::test! { // ANCHOR_END: square } +samples::test! { + self_duplicated; + struct Ogden { + k: f64, + } + impl Ogden { + #[autodiff(d_f, Reverse, Duplicated, Const, Active)] + fn f(&self, j: f64) -> f64 { + self.k * self.k + } + } + + fn main() { + let j = 4.0; + let vol = Ogden { k: 1.0 }; + let mut out = Ogden { k: 0.0 }; + let s = vol.d_f(&mut out, j, 1.0); + let res = 2.0 * vol.k; + assert!((s - res).abs() < 1e-15, "{}", out.k); + } +} + samples::test! { empty_return; // ANCHOR: empty_return