Changeset 456 for library/tests/mpdf_harness.cpp
- Timestamp:
- 07/31/09 08:38:18 (15 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
library/tests/mpdf_harness.cpp
r447 r456 1 1 #include "mpdf_harness.h" 2 #include "base/bdmbase.h" 3 #include "base/user_info.h" 2 4 #include "stat/exp_family.h" 3 5 #include "mat_checks.h" 4 6 #include "test_util.h" 5 7 #include "UnitTest++.h" 6 7 const double epsilon = 0.00001;8 9 namespace UnitTest10 {11 12 inline void CheckClose(TestResults &results, const itpp::vec &expected,13 const itpp::vec &actual, double tolerance,14 TestDetails const &details) {15 if (!AreClose(expected, actual, tolerance)) {16 MemoryOutStream stream;17 stream << "Expected " << expected << " +/- " << tolerance << " but was " << actual;18 19 results.OnTestFailure(details, stream.GetText());20 }21 }22 23 inline void CheckClose(TestResults &results, const itpp::mat &expected,24 const itpp::mat &actual, double tolerance,25 TestDetails const &details) {26 if (!AreClose(expected, actual, tolerance)) {27 MemoryOutStream stream;28 stream << "Expected " << expected << " +/- " << tolerance << " but was " << actual;29 30 results.OnTestFailure(details, stream.GetText());31 }32 }33 34 }35 8 36 9 namespace bdm { … … 39 12 const ParticularUI<mpdf_harness> &ParticularUI<mpdf_harness>::factory( 40 13 ParticularUI<mpdf_harness>("mpdf_harness")); 14 15 void mpdf_harness::test_config(const char *config_file_name) { 16 RV::clear_all(); 17 18 UIFile in(config_file_name); 19 Array<mpdf_harness *> input; 20 UI::get(input, in, "data"); 21 int sz = input.size(); 22 CHECK(sz > 0); 23 for (int i = 0; i < sz; ++i) { 24 input(i)->test(config_file_name, i); 25 } 26 } 41 27 42 28 void mpdf_harness::from_setting(const Setting &set) { … … 50 36 51 37 UI::get(R, set, "R"); 38 39 if (set.exists("tolerance")) { 40 UI::get(tolerance, set, "tolerance"); 41 } 52 42 } 53 43 54 void mpdf_harness::test( )44 void mpdf_harness::test(const char *config_name, int idx) 55 45 { 46 CurrentContext cc(config_name, idx); 47 56 48 mat smp = hmpdf->samplecond_m(cond, nsamples); 57 49 int n = smp.cols(); 58 vec Emu = smp * ones(n) / n;59 mat Er = (smp*smp.transpose())/n - outer_product(Emu,Emu);60 CHECK_CLOSE (mean, Emu, 0.1);61 CHECK_CLOSE (R, Er, 0.1);50 vec emu = smp * ones(n) / n; 51 mat er = (smp * smp.T()) / n - outer_product(emu, emu); 52 CHECK_CLOSE_EX(mean, emu, tolerance); 53 CHECK_CLOSE_EX(R, er, tolerance); 62 54 } 63 55