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