24 #include "cheetah/sift/test_utils/SiftTester.h" 25 #include "cheetah/data/Ccl.h" 26 #include "cheetah/data/Scl.h" 27 #include "cheetah/utils/Architectures.h" 28 #include "panda/Log.h" 35 template<
typename SiftAlgo>
36 void SiftTesterTraits<SiftAlgo>::SiftHandler::operator()(std::shared_ptr<data::Scl> data)
38 ASSERT_TRUE(data.get() !=
nullptr);
40 static_cast<BaseT&
>(*this)();
43 template<
typename SiftAlgo>
44 typename SiftTesterTraits<SiftAlgo>::Api& SiftTesterTraits<SiftAlgo>::api(PoolType& pool)
49 _config.template config<typename SiftAlgo::Config>().active(
true);
50 _api.reset(
new Api(_config, _handler));
55 template<
typename SiftAlgo>
56 typename SiftTesterTraits<SiftAlgo>::SiftHandler& SiftTesterTraits<SiftAlgo>::handler()
61 template<
typename SiftAlgo>
62 typename SiftTesterTraits<SiftAlgo>::TestConfig& SiftTesterTraits<SiftAlgo>::config()
67 template <
typename SiftAlgo>
70 inline static void test(SiftAlgo& api)
72 data::Ccl::CandidateType::MsecTimeType candidate1_period_val(0.050 * boost::units::si::seconds);
73 data::Ccl::CandidateType::SecPerSecType candidate1_pdot_val = 0.00000000000001;
74 data::Ccl::CandidateType::Dm candidate1_dm_val = 5 * data::parsecs_per_cube_cm;
75 data::Ccl::CandidateType::MsecTimeType candidate1_width_val(0.001 * boost::units::si::seconds);
76 data::Ccl::CandidateType candidate1(candidate1_period_val, candidate1_pdot_val, candidate1_dm_val, candidate1_width_val, 10., 1);
78 data::Ccl::CandidateType::MsecTimeType candidate1_harm_period_val(0.100 * boost::units::si::seconds);
79 data::Ccl::CandidateType::SecPerSecType candidate1_harm_pdot_val = 0.00000000000001;
80 data::Ccl::CandidateType::Dm candidate1_harm_dm_val = 5 * data::parsecs_per_cube_cm;
81 data::Ccl::CandidateType::MsecTimeType candidate1_harm_width_val(0.001 * boost::units::si::seconds);
82 data::Ccl::CandidateType candidate1_harm(candidate1_harm_period_val, candidate1_harm_pdot_val, candidate1_harm_dm_val, candidate1_harm_width_val, 5., 2);
84 data::Ccl::CandidateType::MsecTimeType candidate2_period_val(0.033 * boost::units::si::seconds);
85 data::Ccl::CandidateType::SecPerSecType candidate2_pdot_val = 0.00000000000001;
86 data::Ccl::CandidateType::Dm candidate2_dm_val = 95 * data::parsecs_per_cube_cm;
87 data::Ccl::CandidateType::MsecTimeType candidate2_width_val(0.0005 * boost::units::si::seconds);
88 data::Ccl::CandidateType candidate2(candidate2_period_val, candidate2_pdot_val, candidate2_dm_val, candidate2_width_val, 100., 3);
90 data::Ccl::CandidateType::MsecTimeType candidate2_harm_period_val(0.231 * boost::units::si::seconds);
91 data::Ccl::CandidateType::SecPerSecType candidate2_harm_pdot_val = 0.00000000000001;
92 data::Ccl::CandidateType::Dm candidate2_harm_dm_val = 95 * data::parsecs_per_cube_cm;
93 data::Ccl::CandidateType::MsecTimeType candidate2_harm_width_val(0.0005 * boost::units::si::seconds);
94 data::Ccl::CandidateType candidate2_harm(candidate2_harm_period_val, candidate2_harm_pdot_val, candidate2_harm_dm_val, candidate2_harm_width_val, 10., 4);
96 data::Ccl::CandidateType::MsecTimeType candidate3_period_val(0.027467 * boost::units::si::seconds);
97 data::Ccl::CandidateType::SecPerSecType candidate3_pdot_val = 0.00000000000001;
98 data::Ccl::CandidateType::Dm candidate3_dm_val = 29 * data::parsecs_per_cube_cm;
99 data::Ccl::CandidateType::MsecTimeType candidate3_width_val(0.00005 * boost::units::si::seconds);
100 data::Ccl::CandidateType candidate3(candidate3_period_val, candidate3_pdot_val, candidate3_dm_val, candidate3_width_val, 12., 5);
102 data::Ccl::CandidateType::MsecTimeType candidate4_period_val(0.10982 * boost::units::si::seconds);
103 data::Ccl::CandidateType::SecPerSecType candidate4_pdot_val = 0.00000000000001;
104 data::Ccl::CandidateType::Dm candidate4_dm_val = 95 * data::parsecs_per_cube_cm;
105 data::Ccl::CandidateType::MsecTimeType candidate4_width_val(0.0009 * boost::units::si::seconds);
106 data::Ccl::CandidateType candidate4(candidate4_period_val, candidate4_pdot_val, candidate4_dm_val, candidate4_width_val, 7., 6);
108 std::shared_ptr<data::Ccl> ccl(
new data::Ccl());;
109 ccl->push_back(candidate1);
110 ccl->push_back(candidate1_harm);
111 ccl->push_back(candidate2);
112 ccl->push_back(candidate2_harm);
113 ccl->push_back(candidate3);
114 ccl->push_back(candidate4);
127 template <
typename TestTraits>
133 template <
typename TestTraits>
138 template<
typename TestTraits>
143 template<
typename TestTraits>
148 POOL_ALGORITHM_TYPED_TEST_P(
SiftTester, test_execution)
152 ASSERT_TRUE(traits.handler().wait(std::chrono::seconds(5))) <<
"timed out waiting for handler to be called";
154 auto const& scl = *traits.handler().data();
155 ASSERT_EQ(scl.size(), std::size_t(4));
160 REGISTER_TYPED_TEST_CASE_P(
SiftTester, test_execution);
Some limits and constants for FLDO.
A simple record to hold 'candidate' proprerties.