/*! \file \brief Support for testing descendants of mpdf. \author Vaclav Barta. ----------------------------------- BDM++ - C++ library for Bayesian Decision Making under Uncertainty Using IT++ for numerical operations ----------------------------------- */ #ifndef MPDF_HARNESS_H #define MPDF_HARNESS_H #include "bdmroot.h" #include "itpp_ext.h" #include "shared_ptr.h" #include "base/bdmbase.h" #include "base/user_info.h" namespace bdm { class mpdf_harness : public root { private: shared_ptr hmpdf; vec cond; vec mean; vec variance; int nsamples; mat R; double tolerance; public: static void test_config ( const char *config_file_name ); mpdf_harness() : nsamples ( 1000 ), tolerance ( 0.1 ) { } virtual void test ( const char *config_name, int idx ); void from_setting ( const Setting &set ); protected: mpdf *get_mpdf() { return hmpdf.get(); } private: void check_mean(); // assumes R is valid void check_covariance(); }; UIREGISTER(mpdf_harness); } #endif