Skip to content
Snippets Groups Projects
Commit ca59e14e authored by Shaun Roe's avatar Shaun Roe Committed by Frank Winklmeier
Browse files

22.0-unit_tests-InDetEtaDependentCuts

parent 1f21f4b0
No related branches found
No related tags found
No related merge requests found
......@@ -42,10 +42,9 @@ namespace InDet {
///////////////
// Initialize
///////////////
StatusCode InDetEtaDependentCutsSvc::initialize() {
ATH_MSG_INFO ("Initializing " << name() << "...");
StatusCode
InDetEtaDependentCutsSvc::initialize() {
ATH_MSG_DEBUG ("Initializing " << name() << "...");
if ((m_etaBins.size()-1) <= 0) {
ATH_MSG_ERROR( "Wrong initialisation of eta bins. Check the eta bin values in " << name() );
return StatusCode::FAILURE;
......
......@@ -25,6 +25,8 @@
#include "CxxUtils/checker_macros.h"
ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // This is unit test and a static variable is used in IDEDC_GaudiFixtureBase.
namespace utf = boost::unit_test;
static const std::string testJobOptionsFile("InDetEtaDependentCutsTestJobOpts.txt");
struct GaudiKernelFixture:public IDEDC_GaudiFixtureBase{
......@@ -38,22 +40,73 @@ using namespace InDet;
BOOST_AUTO_TEST_SUITE(EtaDependentCutsSvcTest)
const GaudiKernelFixture g(testJobOptionsFile);
const auto & svcLoc=g.svcLoc;
BOOST_AUTO_TEST_CASE( sanityCheck ){
const bool svcLocatorIsOk=(svcLoc != nullptr);
BOOST_TEST(svcLocatorIsOk);
}
BOOST_AUTO_TEST_CASE( retrieveSvc ){
ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
BOOST_TEST (idEDCSvc.retrieve().isSuccess());
}
BOOST_AUTO_TEST_CASE( interfaceID ){
ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
InterfaceID testId("IInDetEtaDependentCutsSvc",1,0);
BOOST_TEST(idEDCSvc->interfaceID()==testId);
}
BOOST_AUTO_TEST_CASE(publicMethods){
ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
BOOST_TEST(idEDCSvc->getMaxEta() == 4.0);
}
BOOST_AUTO_TEST_CASE( sanityCheck ){
const bool svcLocatorIsOk=(svcLoc != nullptr);
BOOST_TEST(svcLocatorIsOk);
}
BOOST_AUTO_TEST_CASE( retrieveSvc ){
ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
BOOST_TEST (idEDCSvc.retrieve().isSuccess());
}
BOOST_AUTO_TEST_CASE( interfaceID ){
InterfaceID testId("IInDetEtaDependentCutsSvc",1,0);
ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
BOOST_TEST(idEDCSvc->interfaceID()==testId);
}
//two failures related to use of template getValue() with the eta argument
BOOST_AUTO_TEST_CASE(publicMethods, * utf::expected_failures(2)){
ServiceHandle<IInDetEtaDependentCutsSvc> idEDCSvc ("InDet::InDetEtaDependentCutsSvc", "test");
//for default constructed service, and choosing a nominal (valid) eta
const double eta=2.0;
const double invalidEta{9.0};
//double getMaxEta()
BOOST_TEST(idEDCSvc->getMaxEta() == 4.0);
//double getMinPtAtEta (const double eta)
BOOST_TEST(idEDCSvc->getMinPtAtEta(eta) == 900.);
//check it throws if eta is out of bounds (will also print error)
BOOST_CHECK_THROW(idEDCSvc->getMinPtAtEta(invalidEta), std::out_of_range);
//double getMaxZImpactAtEta (const double eta)
BOOST_TEST(idEDCSvc->getMaxZImpactAtEta(eta) == 200.);
//double getMaxPrimaryImpactAtEta(const double eta);
BOOST_TEST(idEDCSvc->getMaxPrimaryImpactAtEta(eta) == 2.0);
//int getMinSiHitsAtEta (const double eta);
BOOST_TEST(idEDCSvc->getMinSiHitsAtEta(eta) == 9);
//int getMinSiNotSharedAtEta (const double eta);
BOOST_TEST(idEDCSvc->getMinSiNotSharedAtEta(eta) == 7);
//int getMaxSharedAtEta (const double eta);
BOOST_TEST(idEDCSvc->getMaxSharedAtEta(eta) == 2);
//int getMinPixelHitsAtEta (const double eta);
BOOST_TEST(idEDCSvc->getMinPixelHitsAtEta(eta) == 1);
//int getMaxSiHolesAtEta (const double eta);
BOOST_TEST(idEDCSvc->getMaxSiHolesAtEta(eta) == 2);
//int getMaxPixelHolesAtEta (const double eta);
BOOST_TEST(idEDCSvc->getMaxPixelHolesAtEta(eta) == 1);
//int getMaxSctHolesAtEta (const double eta);
BOOST_TEST(idEDCSvc->getMaxSctHolesAtEta(eta) == 2);
//int getMaxDoubleHolesAtEta (const double eta) const override final;
BOOST_TEST(idEDCSvc->getMaxDoubleHolesAtEta(eta) == 1);
//return values on argument-changing methods
std::vector<int> intCutReturnValue{};
std::vector<double> doubleCutReturnValue{};
const auto dblCutEnum = InDet::CutName::etaWidthBrem;
const auto intCutEnum = InDet::CutName::minClusters;
//
BOOST_CHECK_NO_THROW(idEDCSvc->getValue(dblCutEnum, doubleCutReturnValue));
BOOST_TEST(doubleCutReturnValue.at(0) == 0.2); //only has one entry by default
BOOST_CHECK_NO_THROW(idEDCSvc->getValue(intCutEnum, intCutReturnValue));
BOOST_TEST(intCutReturnValue.at(0) == 9); //only has one entry by default
//try to return an integer cut from a double enum index (will print an ERROR message)
BOOST_CHECK_NO_THROW(idEDCSvc->getValue(dblCutEnum, intCutReturnValue));//doesn't throw
//
BOOST_TEST(intCutReturnValue.at(0) == 9);//i.e. should remain unchanged
//something wrong here, needs fixing in the code?
double etaBinCut{1.};
// T getValueAtEta(const std::vector< T > cuts, const double eta)
BOOST_CHECK_NO_THROW(idEDCSvc->getValue(InDet::CutName::etaBins, etaBinCut, eta));
BOOST_TEST( etaBinCut == 0.0); //failure
BOOST_CHECK_THROW(idEDCSvc->getValue(InDet::CutName::etaBins, etaBinCut, invalidEta), std::out_of_range); //failure
}
BOOST_AUTO_TEST_SUITE_END()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment