void CdfExportTest::exportCdf() { string command = "./apt-cdf-export -c ../../../rawq/test/data/Test3.CDF -ps Pae_16SrRNA_s_at -ps AFFX-Athal-Actin_5_r_at > " + testDir + "/export.Test3.txt"; vector<RegressionCheck *> checks; RegressionTest exportTest ("exportCdf", command.c_str(), checks); Verbose::out (1, "\nDoing exportCdf()"); if (!exportTest.run()) { Verbose::out (1, "Error in CdfExportTest::exportCdf(): " + exportTest.getErrorMsg()); numFailed++; } else { TextFileCheck exportCheck (testDir + "/export.Test3.txt", "data/export.Test3.txt", 0); if (exportCheck.check (errorMsg)) { numPassed++; } else { Verbose::out (1, "Error in CdfExportTest::exportCdf(): " + errorMsg); numFailed++; } } }
TEST(RegressionTest, TestFormulate) { pqxx::connection C(""); pqxx::work W(C); RegressionTest T; T.setName("test.module"); T.setModule("test.module.foo"); EXPECT_EQ(T.formulate(W), "INSERT INTO regressions (run_id, name, module) " "VALUES (0, 'test.module', 'test.module.foo');"); }
void MD5CheckTest::testFileNotFound() { string command = md5app + " -v 2 -i file_does_not_exist"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testFileNotFound", command.c_str(), checks); Verbose::out (1, "\nDoing testFileNotFound()"); if (differencesTest.run() == false) ++numPassed; else { Verbose::out (1, "Error in MD5CheckTest::testFileNotFound(): " + differencesTest.getErrorMsg()); ++numFailed; } }
// ignore column with integer differences Cyto2.AntigenomicProbes.ProbeID void File5EquivalentTest::testIgnoreListPositive() { string command = "./apt-file5-equivalent -e 0.005 -c 1.1 -d ./data/datasets_integer_diff.txt -i ./data/ignore_columns.txt ./data/demean_false_diff1.ref.a5 ./data/demean_false_diff2.ref.a5"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testIgnoreListPositive", command, checks); Verbose::out (1, "\nDoing testIgnoreListPositive()"); if (differencesTest.run()) { ++numPassed; } else { Verbose::out (1, "Error in File5EquivalentTest::testIgnoreListPositive(): " + differencesTest.getErrorMsg()); ++numFailed; } }
// ddemean_true_diff3.ref.a5 WaveCorrection datasets X7,X8 have NaN values, verify that it ignores differences if the -n option is false void File5EquivalentTest::testIgnoreNanNumDifferences() { string command = "./apt-file5-equivalent -n false -e 0.00001 -c 0.999999 -d ./data/datasets_correlation.txt -i ./data/ignore_columns_wc-except-x7-x8.txt ./data/demean_true_diff2.ref.a5 ./data/demean_true_diff3.ref.a5"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testIgnoreNanNumDifferences", command, checks); Verbose::out (1, "\nDoing testIgnoreNanNumDifferences()"); if (differencesTest.run()) { ++numPassed; } else { Verbose::out (1, "Error in File5EquivalentTest::testIgnoreNanNumDifferences(): " + differencesTest.getErrorMsg()); ++numFailed; } }
// allowable differences only in checked datasets and header parameters void File5EquivalentTest::testDifferencesPositive() { string command = "./apt-file5-equivalent --epsilon 0.005 --correlation 1.1 --datasets-file ./data/datasets_similar.txt ./data/demean_false_diff1.ref.a5 ./data/demean_false_diff2.ref.a5"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testDifferencesPositive", command, checks); Verbose::out (1, "\nDoing testDifferencesPositive()"); if (differencesTest.run()) { ++numPassed; } else { Verbose::out (1, "Error in File5EquivalentTest::testDifferencesPositive(): " + differencesTest.getErrorMsg()); ++numFailed; } }
void MD5CheckTest::testFailure() { string command = md5app + " -v 2 -i data/translations_md5.rpt"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testFailure", command.c_str(), checks); Verbose::out (1, "\nDoing testFailure()"); if (differencesTest.run() == false) ++numPassed; else { Verbose::out (1, "Error in MD5CheckTest::testFailure(): " + differencesTest.getErrorMsg()); ++numFailed; } }
// datasets WaveCorrection X1,X2 have all same values with changed sign, X3,X4,X5,X6 have only some values with changed sign void File5EquivalentTest::testSignAllowNegationPositive1() { string command = "./apt-file5-equivalent -s -e 0.0001 -c 0.9999 -d ./data/datasets_correlation.txt ./data/demean_true_diff2.ref.a5 ./data/demean_true_diff3.ref.a5"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testSignAllowNegationPositive1", command, checks); Verbose::out (1, "\nDoing testSignAllowNegationPositive1()"); if (differencesTest.run()) { ++numPassed; } else { Verbose::out (1, "Error in File5EquivalentTest::testSignAllowNegationPositive1(): " + differencesTest.getErrorMsg()); ++numFailed; } }
// demean_true_diff3.ref.a5 WaveCorrection datasets X7,X8 have NaN values, verify fails if NaN status is different by comparing file without NaN values void File5EquivalentTest::testReportNanNumDiffNegative() { string command = "./apt-file5-equivalent --report-nan-num-diff true -e 0.00001 -c 0.9999 --datasets-file ./data/datasets_correlation.txt -i ./data/ignore_columns_wc-except-x7-x8.txt ./data/demean_true_diff2.ref.a5 ./data/demean_true_diff3.ref.a5"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testReportNanNumDiffNegative", command, checks); Verbose::out (1, "\nDoing testReportNanNumDiffNegative()"); if (!differencesTest.run()) { Verbose::setLevel(2); ++numPassed; } else { Verbose::setLevel(2); Verbose::out (1, "Error in File5EquivalentTest::testReportNanNumDiffNegative(): Negative Test SHOULD HAVE FAILED!!!"); ++numFailed; } }
// dataset AntigenomicProbes.ProbeID int32 values have non-allowed single digit differences: 1037413 vs 1037412, etc. void File5EquivalentTest::testIntegerNegative() { string command = "./apt-file5-equivalent -e 0.005 -c 0.99 -d ./data/datasets_integer_diff.txt ./data/demean_false_diff1.ref.a5 ./data/demean_false_diff2.ref.a5"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testIntegerNegative", command, checks); Verbose::out (1, "\nDoing testIntegerNegative()"); if (!differencesTest.run()) { Verbose::setLevel(2); ++numPassed; } else { Verbose::setLevel(2); Verbose::out (1, "Error in File5EquivalentTest::testIntegerNegative(): Negative Test SHOULD HAVE FAILED!!!"); ++numFailed; } }
// datasets WaveCorrection X1,X2,X3,X4,X5,X6 have values with changed sign; differences fail larger tolerance without -s option void File5EquivalentTest::testSignAllowNegationNegative2() { string command = "./apt-file5-equivalent -e 0.001 -c 0.999 --datasets-file ./data/datasets_correlation.txt ./data/demean_true_diff2.ref.a5 ./data/demean_true_diff3.ref.a5"; vector<RegressionCheck *> checks; RegressionTest differencesTest ("testSignAllowNegationNegative2", command, checks); Verbose::out (1, "\nDoing testSignAllowNegationNegative2()"); if (!differencesTest.run()) { Verbose::setLevel(2); ++numPassed; } else { Verbose::setLevel(2); Verbose::out (1, "Error in File5EquivalentTest::testSignAllowNegationNegative2(): Negative Test SHOULD HAVE FAILED!!!"); ++numFailed; } }
void CelExtractTest::doExtractIntensitiesSubset() { string command = "./apt-cel-extract --probeset-ids=../../../regression-data/data/idata/cel-extract/HG-U133_Plus_2/ps.txt -o " + testDir + "/qt.extract.intensities.sub.txt -s ../../../regression-data/data/idata/lib/HG-U133_Plus_2/HG-U133_Plus_2.spf " + tissueCels; vector<RegressionCheck *> checks; checks.push_back(new MixedFileCheck(testDir + "/qt.extract.intensities.sub.txt", "../../../regression-data/data/idata/cel-extract/HG-U133_Plus_2/qt.extract.intensities.sub.txt", 0.1, 0,0)); RegressionTest extractTest ("qt-doExtractIntensitiesSubset", command.c_str(), checks); Verbose::out (1, "Doing qt-doExtractIntensitiesSubset()"); if (!extractTest.pass()) { Verbose::out(1, "Error in qt-doExtractIntensitiesSubset():" + extractTest.getErrorMsg()); numFailed++; } else { numPassed++; } }
RegTestVec setupTestVector(RegTestMap& availableTests, const RegTestSuite& testsToRun) { RegTestVec res; for(RegTestSuite::const_iterator itr = testsToRun.begin(); itr != testsToRun.end(); itr++) { const std::string& curTest = *itr; std::size_t delim = curTest.find_first_of(' '); std::string name; std::string arg; if(delim == string::npos) { name = curTest; } else { arg = curTest.substr(delim+1); name = curTest.substr(0, delim); } coreprintln("curTest: %s name: %s", curTest.c_str(), name.c_str()); RegTestMap::iterator regItr = availableTests.find(name); if(regItr != availableTests.end()) { RegressionTest* reg = regItr->second(regItr->first.c_str()); reg->setArg(arg); res.push_back(reg); coreprintln("push_back: %s", reg->getTestName()); } else { coreprintln_warn("WARNING: Test not found: %s", name.c_str()); } } return res; }
ssize_t Device::getProperty(const RTCDeviceProperty prop) { size_t iprop = (size_t)prop; /* get name of internal regression test */ if (iprop >= 2000000 && iprop < 3000000) { RegressionTest* test = getRegressionTest(iprop-2000000); if (test) return (ssize_t) test->name.c_str(); else return 0; } /* run internal regression test */ if (iprop >= 3000000 && iprop < 4000000) { RegressionTest* test = getRegressionTest(iprop-3000000); if (test) return test->run(); else return 0; } /* documented properties */ switch (prop) { case RTC_DEVICE_PROPERTY_VERSION_MAJOR: return RTC_VERSION_MAJOR; case RTC_DEVICE_PROPERTY_VERSION_MINOR: return RTC_VERSION_MINOR; case RTC_DEVICE_PROPERTY_VERSION_PATCH: return RTC_VERSION_PATCH; case RTC_DEVICE_PROPERTY_VERSION : return RTC_VERSION; #if defined(EMBREE_TARGET_SIMD4) && defined(EMBREE_RAY_PACKETS) case RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED: return hasISA(SSE2); #else case RTC_DEVICE_PROPERTY_NATIVE_RAY4_SUPPORTED: return 0; #endif #if defined(EMBREE_TARGET_SIMD8) && defined(EMBREE_RAY_PACKETS) case RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED: return hasISA(AVX); #else case RTC_DEVICE_PROPERTY_NATIVE_RAY8_SUPPORTED: return 0; #endif #if defined(EMBREE_TARGET_SIMD16) && defined(EMBREE_RAY_PACKETS) case RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED: return hasISA(AVX512KNL) | hasISA(AVX512SKX); #else case RTC_DEVICE_PROPERTY_NATIVE_RAY16_SUPPORTED: return 0; #endif #if defined(EMBREE_RAY_PACKETS) case RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_RAY_STREAM_SUPPORTED: return 0; #endif #if defined(EMBREE_RAY_MASK) case RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_RAY_MASK_SUPPORTED: return 0; #endif #if defined(EMBREE_BACKFACE_CULLING) case RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED: return 1; #else case RTC_DEVICE_PROPERTY_BACKFACE_CULLING_ENABLED: return 0; #endif #if defined(EMBREE_FILTER_FUNCTION) case RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_FILTER_FUNCTION_SUPPORTED: return 0; #endif #if defined(EMBREE_IGNORE_INVALID_RAYS) case RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED: return 1; #else case RTC_DEVICE_PROPERTY_IGNORE_INVALID_RAYS_ENABLED: return 0; #endif #if defined(TASKING_INTERNAL) case RTC_DEVICE_PROPERTY_TASKING_SYSTEM: return 0; #endif #if defined(TASKING_TBB) case RTC_DEVICE_PROPERTY_TASKING_SYSTEM: return 1; #endif #if defined(TASKING_PPL) case RTC_DEVICE_PROPERTY_TASKING_SYSTEM: return 2; #endif #if defined(EMBREE_GEOMETRY_TRIANGLE) case RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_TRIANGLE_GEOMETRY_SUPPORTED: return 0; #endif #if defined(EMBREE_GEOMETRY_QUAD) case RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_QUAD_GEOMETRY_SUPPORTED: return 0; #endif #if defined(EMBREE_GEOMETRY_CURVE) case RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_CURVE_GEOMETRY_SUPPORTED: return 0; #endif #if defined(EMBREE_GEOMETRY_SUBDIVISION) case RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_SUBDIVISION_GEOMETRY_SUPPORTED: return 0; #endif #if defined(EMBREE_GEOMETRY_USER) case RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED: return 1; #else case RTC_DEVICE_PROPERTY_USER_GEOMETRY_SUPPORTED: return 0; #endif #if defined(TASKING_PPL) case RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED: return 0; #elif defined(TASKING_TBB) && (TBB_INTERFACE_VERSION_MAJOR < 8) case RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED: return 0; #else case RTC_DEVICE_PROPERTY_JOIN_COMMIT_SUPPORTED: return 1; #endif default: throw_RTCError(RTC_ERROR_INVALID_ARGUMENT, "unknown readable property"); break; }; }
ssize_t Device::getParameter1i(const RTCParameter parm) { size_t iparm = (size_t)parm; /* get name of internal regression test */ if (iparm >= 2000000 && iparm < 3000000) { RegressionTest* test = getRegressionTest(iparm-2000000); if (test) return (ssize_t) test->name.c_str(); else return 0; } /* run internal regression test */ if (iparm >= 3000000 && iparm < 4000000) { RegressionTest* test = getRegressionTest(iparm-3000000); if (test) return test->run(); else return 0; } /* documented parameters */ switch (parm) { case RTC_CONFIG_VERSION_MAJOR: return RTCORE_VERSION_MAJOR; case RTC_CONFIG_VERSION_MINOR: return RTCORE_VERSION_MINOR; case RTC_CONFIG_VERSION_PATCH: return RTCORE_VERSION_PATCH; case RTC_CONFIG_VERSION : return RTCORE_VERSION; case RTC_CONFIG_INTERSECT1: return 1; #if defined(EMBREE_TARGET_SIMD4) && defined(EMBREE_RAY_PACKETS) case RTC_CONFIG_INTERSECT4: return hasISA(SSE2); #else case RTC_CONFIG_INTERSECT4: return 0; #endif #if defined(EMBREE_TARGET_SIMD8) && defined(EMBREE_RAY_PACKETS) case RTC_CONFIG_INTERSECT8: return hasISA(AVX); #else case RTC_CONFIG_INTERSECT8: return 0; #endif #if defined(EMBREE_TARGET_SIMD16) && defined(EMBREE_RAY_PACKETS) case RTC_CONFIG_INTERSECT16: return hasISA(AVX512KNL) | hasISA(AVX512SKX); #else case RTC_CONFIG_INTERSECT16: return 0; #endif #if defined(EMBREE_RAY_PACKETS) case RTC_CONFIG_INTERSECT_STREAM: return 1; #else case RTC_CONFIG_INTERSECT_STREAM: return 0; #endif #if defined(EMBREE_RAY_MASK) case RTC_CONFIG_RAY_MASK: return 1; #else case RTC_CONFIG_RAY_MASK: return 0; #endif #if defined(EMBREE_BACKFACE_CULLING) case RTC_CONFIG_BACKFACE_CULLING: return 1; #else case RTC_CONFIG_BACKFACE_CULLING: return 0; #endif #if defined(EMBREE_INTERSECTION_FILTER) case RTC_CONFIG_INTERSECTION_FILTER: return 1; #else case RTC_CONFIG_INTERSECTION_FILTER: return 0; #endif #if defined(EMBREE_INTERSECTION_FILTER_RESTORE) case RTC_CONFIG_INTERSECTION_FILTER_RESTORE: return 1; #else case RTC_CONFIG_INTERSECTION_FILTER_RESTORE: return 0; #endif #if defined(EMBREE_IGNORE_INVALID_RAYS) case RTC_CONFIG_IGNORE_INVALID_RAYS: return 1; #else case RTC_CONFIG_IGNORE_INVALID_RAYS: return 0; #endif #if defined(TASKING_INTERNAL) case RTC_CONFIG_TASKING_SYSTEM: return 0; #endif #if defined(TASKING_TBB) case RTC_CONFIG_TASKING_SYSTEM: return 1; #endif #if defined(TASKING_PPL) case RTC_CONFIG_TASKING_SYSTEM: return 2; #endif #if defined(EMBREE_GEOMETRY_TRIANGLES) case RTC_CONFIG_TRIANGLE_GEOMETRY: return 1; #else case RTC_CONFIG_TRIANGLE_GEOMETRY: return 0; #endif #if defined(EMBREE_GEOMETRY_QUADS) case RTC_CONFIG_QUAD_GEOMETRY: return 1; #else case RTC_CONFIG_QUAD_GEOMETRY: return 0; #endif #if defined(EMBREE_GEOMETRY_LINES) case RTC_CONFIG_LINE_GEOMETRY: return 1; #else case RTC_CONFIG_LINE_GEOMETRY: return 0; #endif #if defined(EMBREE_GEOMETRY_HAIR) case RTC_CONFIG_HAIR_GEOMETRY: return 1; #else case RTC_CONFIG_HAIR_GEOMETRY: return 0; #endif #if defined(EMBREE_GEOMETRY_SUBDIV) case RTC_CONFIG_SUBDIV_GEOMETRY: return 1; #else case RTC_CONFIG_SUBDIV_GEOMETRY: return 0; #endif #if defined(EMBREE_GEOMETRY_USER) case RTC_CONFIG_USER_GEOMETRY: return 1; #else case RTC_CONFIG_USER_GEOMETRY: return 0; #endif #if defined(TASKING_TBB) && (TBB_INTERFACE_VERSION_MAJOR < 8) case RTC_CONFIG_COMMIT_JOIN: return 0; case RTC_CONFIG_COMMIT_THREAD: return 0; #else case RTC_CONFIG_COMMIT_JOIN: return 1; case RTC_CONFIG_COMMIT_THREAD: return 1; #endif default: throw_RTCError(RTC_INVALID_ARGUMENT, "unknown readable parameter"); break; }; }
TEST(RegressionTest, TestGetRunID) { RegressionTest T; EXPECT_EQ((uint64_t)0, T.runID()); }
TEST(RegressionTest, TestGetSetRunID) { RegressionTest T; T.setRunID(1); EXPECT_EQ((uint64_t)1, T.runID()); }
TEST(RegressionTest, TestGetEmptyModule) { RegressionTest T; EXPECT_EQ("", T.module()); }
TEST(RegressionTest, TestSetName) { RegressionTest T; T.setName("test.module"); EXPECT_EQ(T.str(), "<RegressionTest (0) Module<test.module>>"); }
int main(int argc, char** argv) { if(argc!=2) { std::cout<<"Usage: regression.exe configurationFile\n"; return 1; } std::string parameterFile(argv[1]); RegressionManager manager; bool status = true; status = manager.init(parameterFile); if(status) { manager.makeRegression(); } if(!status) std::cout<<"FATAL: A fatal error occured - QUIT -\n"; else std::cout<<"- Finish - All good -\n"; /* TFile *file = new TFile("GBR_Clustering_70pre11_Photons_EG_results.root","READ"); const std::vector<std::string> *varlist = (std::vector<std::string>*)file->Get("varlistEB"); const GBRForest *forest = (GBRForest*)file->Get("EBCorrection"); int numvars = varlist->size(); int numtrees = forest->Trees().size(); printf("liste des variables \n"); for (int ivar = 0; ivar<numvars; ++ivar) { printf("%i: %s\n",ivar, varlist->at(ivar).c_str()); } printf("nombre de trees : %i \n",numtrees); TTree *dtree; TFile *fdin = TFile::Open("~/eos/cms/store/group/phys_egamma/lgray/PhotonRegressionTrees_23012014_v2-runPhotonRegressionTrees_cfg/runPhotonRegressionTrees_cfg-step4_RECO_EI-0006AD69-4A69-E211-922D-002354EF3BE4.root"); TDirectory *ddir = (TDirectory*)fdin->FindObjectAny("egSCTree"); dtree = (TTree*)ddir->Get("SuperClusterTree"); float* Input; Input = new float[numvars]; dtree->SetBranchAddress("scEta",&Input[0]); dtree->SetBranchAddress("scPhi",&Input[1]); dtree->SetBranchAddress("scEtaWidth",&Input[2]); dtree->SetBranchAddress("scPhiWidth",&Input[3]); double Output; for (int i=0;i<100;i++){ dtree->GetEntry(i); //printf(" eta =%f phi =%f etawidth = %f phiwidth = %f \n",scEta,scPhi, scEtaWidth, scPhiWidth); //Input[0]=scEta; //Input[1]=scPhi; //Input[2]=scEtaWidth; //Input[3]=scPhiWidth; Output=forest->GetResponse(Input); printf("Ecor/Eraw = %f \n",Output); } */ RegressionTest test; test.init("GBR_Clustering_70pre11_Photons_EG_results.root","~/eos/cms/store/group/phys_egamma/lgray/PhotonRegressionTrees_23012014_v2-runPhotonRegressionTrees_cfg/runPhotonRegressionTrees_cfg-step4_RECO_EI-FA47A89F-906A-E211-9ABF-003048FFCBB0.root","egSCTree","SuperClusterTree"); test.PlotResponse(); return status; }