1 #ifndef teca_dataset_diff_h
2 #define teca_dataset_diff_h
4 #include "teca_shared_object.h"
5 #include "teca_algorithm.h"
6 #include "teca_metadata.h"
7 #include "teca_table.h"
9 #include "teca_cartesian_mesh.h"
10 #include "teca_curvilinear_mesh.h"
11 #include "teca_arakawa_c_grid.h"
12 #include "teca_array_collection.h"
41 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
42 TECA_SET_ALGORITHM_PROPERTIES()
47 TECA_ALGORITHM_PROPERTY(
double, relative_tolerance)
52 TECA_ALGORITHM_PROPERTY(
double, absolute_tolerance)
56 TECA_ALGORITHM_PROPERTY(
int, verbose)
61 int compare_tables(const_p_teca_table table1, const_p_teca_table table2);
64 const_p_teca_mesh reference_mesh,
65 const_p_teca_mesh data_mesh);
67 int compare_cartesian_meshes(
68 const_p_teca_cartesian_mesh reference_mesh,
69 const_p_teca_cartesian_mesh data_mesh);
71 int compare_curvilinear_meshes(
72 const_p_teca_curvilinear_mesh reference_mesh,
73 const_p_teca_curvilinear_mesh data_mesh);
75 int compare_arakawa_c_grids(
76 const_p_teca_arakawa_c_grid reference_mesh,
77 const_p_teca_arakawa_c_grid data_mesh);
79 int compare_array_collections(
80 const_p_teca_array_collection reference_arrays,
81 const_p_teca_array_collection data_arrays);
83 int compare_arrays(const_p_teca_variant_array array1,
84 const_p_teca_variant_array array2,
double absTol,
double relTol);
90 void datasets_differ(
const char* info, ...);
94 const std::vector<teca_metadata> &input_md)
override;
96 std::vector<teca_metadata> get_upstream_request(
97 unsigned int port,
const std::vector<teca_metadata> &input_md,
100 const_p_teca_dataset execute(
unsigned int port,
101 const std::vector<const_p_teca_dataset> &input_data,
104 double get_abs_tol()
const;
105 double get_rel_tol()
const;
108 double relative_tolerance;
109 double absolute_tolerance;