From 1da1f414cd71f10b2942c7e91e1a90bc42e5792b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Thu, 9 Jul 2020 18:37:55 +0200 Subject: [PATCH] Testsuite / External functions: add check for numerical results (cherry picked from commit 5b88113668362c84c1f46c97fdde9f10bdde71b1) --- tests/Makefile.am | 20 +++++++++++++++++++ tests/external_function/extfun_in_mlv.mod | 11 ++++++++++ .../first_and_2nd_deriv_given.mod | 11 ++++++++++ .../first_and_2nd_deriv_given_dll.mod | 11 ++++++++++ ...irst_and_2nd_deriv_given_dll_namespace.mod | 11 ++++++++++ .../first_and_2nd_deriv_given_namespace.mod | 11 ++++++++++ tests/external_function/first_deriv_given.mod | 11 ++++++++++ .../first_deriv_given_dll.mod | 11 ++++++++++ tests/external_function/no_deriv_given.mod | 11 ++++++++++ .../external_function/no_deriv_given_dll.mod | 11 ++++++++++ 10 files changed, 119 insertions(+) diff --git a/tests/Makefile.am b/tests/Makefile.am index 7c3f475f27..c86abc3857 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -180,6 +180,7 @@ MODFILES = \ dsge-var/simul_hybrid.mod \ dsge-var/dsgevar_forward_calibrated_lambda.mod \ dsge-var/dsgevar_forward_estimated_lambda.mod \ + external_function/benchmark.mod \ external_function/first_deriv_given.mod \ external_function/first_deriv_given_dll.mod \ external_function/first_and_2nd_deriv_given.mod \ @@ -484,6 +485,25 @@ dsge-var/dsgevar_forward_estimated_lambda.m.trs: dsge-var/simul_hybrid.m.trs dsge-var/dsgevar_forward_calibrated_lambda.o.trs: dsge-var/simul_hybrid.o.trs dsge-var/dsgevar_forward_estimated_lambda.o.trs: dsge-var/simul_hybrid.o.trs +external_function/first_deriv_given.m.trs: external_function/benchmark.m.trs +external_function/first_deriv_given.o.trs: external_function/benchmark.o.trs +external_function/first_deriv_given_dll.m.trs: external_function/benchmark.m.trs +external_function/first_deriv_given_dll.o.trs: external_function/benchmark.o.trs +external_function/first_and_2nd_deriv_given.m.trs: external_function/benchmark.m.trs +external_function/first_and_2nd_deriv_given.o.trs: external_function/benchmark.o.trs +external_function/first_and_2nd_deriv_given_dll.m.trs: external_function/benchmark.m.trs +external_function/first_and_2nd_deriv_given_dll.o.trs: external_function/benchmark.o.trs +external_function/first_and_2nd_deriv_given_namespace.m.trs: external_function/benchmark.m.trs +external_function/first_and_2nd_deriv_given_namespace.o.trs: external_function/benchmark.o.trs +external_function/first_and_2nd_deriv_given_dll_namespace.m.trs: external_function/benchmark.m.trs +external_function/first_and_2nd_deriv_given_dll_namespace.o.trs: external_function/benchmark.o.trs +external_function/no_deriv_given.m.trs: external_function/benchmark.m.trs +external_function/no_deriv_given.o.trs: external_function/benchmark.o.trs +external_function/no_deriv_given_dll.m.trs: external_function/benchmark.m.trs +external_function/no_deriv_given_dll.o.trs: external_function/benchmark.o.trs +external_function/extfun_in_mlv.m.trs: external_function/benchmark.m.trs +external_function/extfun_in_mlv.o.trs: external_function/benchmark.o.trs + smoother2histval/fs2000_simul.m.trs: smoother2histval/fs2000_smooth.m.trs smoother2histval/fs2000_simul.o.trs: smoother2histval/fs2000_smooth.o.trs diff --git a/tests/external_function/extfun_in_mlv.mod b/tests/external_function/extfun_in_mlv.mod index 3b3fddd99a..1b2947cff5 100644 --- a/tests/external_function/extfun_in_mlv.mod +++ b/tests/external_function/extfun_in_mlv.mod @@ -45,3 +45,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/first_and_2nd_deriv_given.mod b/tests/external_function/first_and_2nd_deriv_given.mod index 8726ed43c6..5c9623560c 100644 --- a/tests/external_function/first_and_2nd_deriv_given.mod +++ b/tests/external_function/first_and_2nd_deriv_given.mod @@ -44,3 +44,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/first_and_2nd_deriv_given_dll.mod b/tests/external_function/first_and_2nd_deriv_given_dll.mod index eb18b676cd..40ff04e6b3 100644 --- a/tests/external_function/first_and_2nd_deriv_given_dll.mod +++ b/tests/external_function/first_and_2nd_deriv_given_dll.mod @@ -44,3 +44,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/first_and_2nd_deriv_given_dll_namespace.mod b/tests/external_function/first_and_2nd_deriv_given_dll_namespace.mod index a868c4193a..bfeb03f206 100644 --- a/tests/external_function/first_and_2nd_deriv_given_dll_namespace.mod +++ b/tests/external_function/first_and_2nd_deriv_given_dll_namespace.mod @@ -46,3 +46,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/first_and_2nd_deriv_given_namespace.mod b/tests/external_function/first_and_2nd_deriv_given_namespace.mod index 1cefa83999..dc116d44a7 100644 --- a/tests/external_function/first_and_2nd_deriv_given_namespace.mod +++ b/tests/external_function/first_and_2nd_deriv_given_namespace.mod @@ -46,3 +46,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/first_deriv_given.mod b/tests/external_function/first_deriv_given.mod index ee2f3d99f6..5e8e7b172c 100644 --- a/tests/external_function/first_deriv_given.mod +++ b/tests/external_function/first_deriv_given.mod @@ -44,3 +44,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/first_deriv_given_dll.mod b/tests/external_function/first_deriv_given_dll.mod index 054a0cfb8c..47db02d2d9 100644 --- a/tests/external_function/first_deriv_given_dll.mod +++ b/tests/external_function/first_deriv_given_dll.mod @@ -44,3 +44,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-12 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/no_deriv_given.mod b/tests/external_function/no_deriv_given.mod index a35d08b8cd..164e152c5a 100644 --- a/tests/external_function/no_deriv_given.mod +++ b/tests/external_function/no_deriv_given.mod @@ -44,3 +44,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-9 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-9 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end diff --git a/tests/external_function/no_deriv_given_dll.mod b/tests/external_function/no_deriv_given_dll.mod index 6a67835792..4503857328 100644 --- a/tests/external_function/no_deriv_given_dll.mod +++ b/tests/external_function/no_deriv_given_dll.mod @@ -44,3 +44,14 @@ var e, u = phi*0.009*0.009; end; stoch_simul; + +L = load('benchmark_results.mat'); +if max(max(abs(L.oo_.dr.ghu - oo_.dr.ghu))) > 1e-9 + error('Failure in external function') +end +if max(max(abs(L.oo_.dr.ghx - oo_.dr.ghx))) > 1e-9 + error('Failure in external function') +end +if max(max(abs(L.oo_.var - oo_.var))) > 1e-12 + error('Failure in external function') +end -- GitLab