24 #include "cheetah/exporters/test/SpCclSpeadReaderTest.h" 25 #include "cheetah/exporters/SpCclSpeadReader.h" 26 #include "cheetah/exporters/SpCclSpeadStreamer.h" 36 SpCclSpeadReaderTest::SpCclSpeadReaderTest()
41 SpCclSpeadReaderTest::~SpCclSpeadReaderTest()
45 void SpCclSpeadReaderTest::SetUp()
49 void SpCclSpeadReaderTest::TearDown()
53 template<
typename NumericalRep>
54 std::shared_ptr<data::SpCcl<NumericalRep>> spccl_data()
56 typedef data::SpCcl<NumericalRep> SpCclType;
57 typedef typename SpCclType::TimeFrequencyType TimeFrequencyType;
58 typedef typename SpCclType::SpCandidateType Candidate;
61 typename utils::ModifiedJulianClock::time_point start_time(utils::julian_day(2458179.500000));
63 typename SpCclType::BlocksType blocks;
64 std::shared_ptr<TimeFrequencyType> block = std::make_shared<TimeFrequencyType>(
65 data::DimensionSize<data::Time>(1000)
66 , data::DimensionSize<data::Frequency>(10));
68 block->start_time(static_cast<typename TimeFrequencyType::TimePointType>(start_time));
69 block->sample_interval(0.001 * boost::units::si::seconds);
70 blocks.push_back(block);
71 blocks.push_back(std::make_shared<TimeFrequencyType>( data::DimensionSize<data::Time>(100)
72 , data::DimensionSize<data::Frequency>(10)));
74 std::shared_ptr<data::SpCcl<NumericalRep>> data(
new data::SpCcl<NumericalRep>(blocks));
76 std::size_t cand_duration = 40;
77 typename Candidate::MsecTimeType cand1_tend(cand_duration * block->sample_interval());
78 typename Candidate::Dm cand1_dm(00.0 * data::parsecs_per_cube_cm);
79 Candidate candidate_1( cand1_dm
80 ,
typename Candidate::MsecTimeType(0.0 * boost::units::si::seconds)
81 ,
typename Candidate::MsecTimeType(0.001 * boost::units::si::seconds)
85 data->push_back(candidate_1);
95 TEST_F(SpCclSpeadReaderTest, test_reset)
97 typedef uint8_t NumericalRep;
99 SpCclSpeadStreamerConfig writer_config;
100 SpCclSpeadReaderConfig reader_config;
101 panda::ProcessingEngine engine(2);
104 auto data = spccl_data<NumericalRep>();
105 typedef typename std::remove_reference<decltype(*data)>::type::TimeFrequencyType TimeFrequencyType;
107 std::vector<std::shared_ptr<data::SpCandidateData<TimeFrequencyType>>> recv_data;
108 SpCclSpeadReader<TimeFrequencyType> reader(reader_config
109 , [&](std::shared_ptr<data::SpCandidateData<TimeFrequencyType>>
const& d)
111 std::cout <<
"hello" << std::endl;
112 recv_data.push_back(d);
115 bool stopped =
false;
116 reader.add_stop_callback([&]() { stopped =
true; });
118 bool started =
false;
119 reader.add_start_callback([&]() { started =
true; });
121 exporters::SpCclSpeadStreamer writer(writer_config, engine);
125 while(!(stopped && started)) {
126 reader_config.engine().poll_one();
129 exporters::SpCclSpeadStreamer writer(writer_config, engine);
133 while(recv_data.size() < 2 ) {
134 reader_config.engine().poll_one();
Some limits and constants for FLDO.