24 #include "cheetah/exporters/test/SpCclFileStreamerTest.h" 25 #include "cheetah/exporters/SpCclFileStreamer.h" 26 #include "cheetah/utils/JulianClock.h" 27 #include "panda/test/TestDir.h" 36 SpCclFileStreamerTest::SpCclFileStreamerTest()
41 SpCclFileStreamerTest::~SpCclFileStreamerTest()
45 void SpCclFileStreamerTest::SetUp()
49 void SpCclFileStreamerTest::TearDown()
53 TEST_F(SpCclFileStreamerTest, test_write)
56 typedef typename data::SpCcl<uint8_t>::TimeFrequencyType TimeFrequencyType;
58 panda::test::TestDir tmp_dir;
59 SpCclFileStreamerConfig config;
60 ASSERT_NO_THROW(tmp_dir.create());
61 config.dir(tmp_dir.dir_name());
63 typename utils::JulianClock::time_point start_time(utils::julian_day(2458179.500000));
64 data::SpCcl<uint8_t>::BlocksType blocks;
65 std::shared_ptr<TimeFrequencyType> block = std::make_shared<TimeFrequencyType>(data::DimensionSize<data::Time>(1000)
66 ,data::DimensionSize<data::Frequency>(10));
67 block->start_time(static_cast<typename TimeFrequencyType::TimePointType>(start_time));
68 blocks.push_back(block);
69 blocks.push_back(std::make_shared<TimeFrequencyType>(data::DimensionSize<data::Time>(100),data::DimensionSize<data::Frequency>(10)));
70 data::SpCcl<uint8_t> d1(blocks);
71 typename data::SpCcl<uint8_t>::SpCandidateType::Dm dm(12.0 * data::parsecs_per_cube_cm);
73 data::SpCcl<uint8_t>::SpCandidateType::MsecTimeType width(0.001 * boost::units::si::seconds);
75 data::SpCcl<uint8_t>::SpCandidateType::MsecTimeType tstart(2.0 * boost::units::si::seconds);
79 for (
auto idx=0; idx<10; ++idx)
81 data::SpCcl<uint8_t>::SpCandidateType candidate(dm, tstart, width, sigma, idx);
82 d1.push_back(candidate);
85 exporters::SpCclFileStreamer<uint8_t> writer(config);
89 auto it = boost::filesystem::directory_iterator(tmp_dir.path());
90 ASSERT_FALSE(it == boost::filesystem::directory_iterator());
91 boost::filesystem::path file = *it;
92 ASSERT_EQ(file.extension().string(),
".spccl");
93 ASSERT_EQ(file.stem().string(),
"2018_03_02_00:00:00");
94 ASSERT_TRUE(boost::filesystem::exists(it->path()));
95 ASSERT_EQ(1U, std::distance(it, boost::filesystem::directory_iterator()));
Some limits and constants for FLDO.