00001 00013 #ifndef EPDF_HARNESS_H 00014 #define EPDF_HARNESS_H 00015 00016 #define BDMLIB // not an ideal way to prevent double registration of UI factories... 00017 00018 #include "bdmroot.h" 00019 #include "itpp_ext.h" 00020 #include "shared_ptr.h" 00021 #include "base/bdmbase.h" 00022 #include "base/user_info.h" 00023 00024 namespace bdm 00025 { 00026 00027 class epdf_harness : public root 00028 { 00029 private: 00030 shared_ptr<epdf> hepdf; 00031 vec mean; 00032 vec variance; 00033 mat support; 00034 vec nbins; 00035 int nsamples; 00036 mat R; 00037 shared_ptr<RV> mrv; 00038 double tolerance; 00039 00040 public: 00041 static void test_config(const char *config_file_name); 00042 00043 epdf_harness():nsamples(1000), tolerance(0.1) { } 00044 00045 virtual void test(const char *config_name, int idx); 00046 00047 void from_setting(const Setting &set); 00048 00049 protected: 00050 epdf *get_epdf() { return hepdf.get(); } 00051 00052 double get_tolerance() const { return tolerance; } 00053 }; 00054 00055 } 00056 00057 #endif