Metis 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
GTestDiffTest.hpp
Go to the documentation of this file.
1#pragma once
11
12#include <gtest/gtest.h>
14
15namespace metis::diff_test {
16
30template <typename Func>
31void expect_dual_mode(Func &&f, const std::vector<std::vector<double>> &test_points,
32 const DiffTestOptions &opts = {}) {
33 auto result = verify_dual_mode(std::forward<Func>(f), test_points, opts);
34 ASSERT_TRUE(result.symbolic_compiles) << result.failure_detail;
35 EXPECT_TRUE(result.values_match) << result.failure_detail;
36}
37
51template <typename Func>
52void expect_differentiable(Func &&f, const std::vector<std::vector<double>> &test_points,
53 const DiffTestOptions &opts = {}) {
54 auto result = verify_differentiable(std::forward<Func>(f), test_points, opts);
55 ASSERT_TRUE(result.symbolic_compiles) << result.failure_detail;
56 ASSERT_TRUE(result.values_match) << result.failure_detail;
57 EXPECT_TRUE(result.jacobian_matches) << result.failure_detail;
58}
59
60} // namespace metis::diff_test
GTest-free core for differentiability testing of dual-mode functions.
Definition DiffTestHarness.hpp:31
void expect_dual_mode(Func &&f, const std::vector< std::vector< double > > &test_points, const DiffTestOptions &opts={})
Assert that a dual-mode function compiles symbolically and that symbolic output matches numeric outpu...
Definition GTestDiffTest.hpp:31
void expect_differentiable(Func &&f, const std::vector< std::vector< double > > &test_points, const DiffTestOptions &opts={})
Assert that a dual-mode function is differentiable: symbolic compilation + value match + AD Jacobian ...
Definition GTestDiffTest.hpp:52
DiffTestResult verify_differentiable(Func &&f, const std::vector< std::vector< double > > &test_points, const DiffTestOptions &opts={})
Verify differentiability across multiple test points. Returns on first failure.
Definition DiffTestHarness.hpp:499
DualModeResult verify_dual_mode(Func &&f, const std::vector< std::vector< double > > &test_points, const DiffTestOptions &opts={})
Verify dual-mode across multiple test points. Returns on first failure.
Definition DiffTestHarness.hpp:314
Options controlling differentiability test behavior.
Definition DiffTestHarness.hpp:40