24 #include "cheetah/data/test_utils/DmTimeTest.h" 25 #include "cheetah/data/test_utils/DmTrialsGeneratorUtil.h" 26 #include "cheetah/data/DmTime.h" 27 #include "cheetah/data/DmTrialsMetadata.h" 28 #include "cheetah/data/DmTrials.h" 29 #include "cheetah/data/TimeSeries.h" 30 #include "panda/Log.h" 38 template <
typename Traits>
39 DmTimeTest<Traits>::DmTimeTest()
44 template <
typename Traits>
45 DmTimeTest<Traits>::~DmTimeTest()
49 template <
typename Traits>
50 void DmTimeTest<Traits>::SetUp()
54 template <
typename Traits>
55 void DmTimeTest<Traits>::TearDown()
59 template <
typename Arch,
typename T>
60 void Tester<Arch,T>::slice_test(std::size_t dms_per_slice, std::size_t ndms, std::size_t nblocks)
62 typedef typename utils::ModifiedJulianClock::time_point StartTime;
63 typedef data::DmTrials<Arch,T> DmTrialsType;
64 typedef typename DmTrialsType::TimeType TimeType;
65 typedef typename DmTrialsType::DmType Dm;
66 auto buffer = DmTime<DmTrialsType>::make_shared();
67 DmTrialsGeneratorUtil<DmTrialsType> trials_generator;
69 for (std::size_t block_idx=0; block_idx<nblocks; ++block_idx)
71 buffer->add(trials_generator.generate(TimeType(0.1*data::seconds),10,ndms));
74 std::size_t slice_count = 0;
75 std::size_t dm_count = 0;
77 for (
auto it = buffer->begin(dms_per_slice); it < buffer->end(); ++it )
80 for (
auto slice_it = slice->begin(); slice_it != slice->end(); ++slice_it )
86 int remainder = (ndms % dms_per_slice != 0);
87 ASSERT_EQ(slice_count,ndms/dms_per_slice + remainder);
88 ASSERT_EQ(dm_count,ndms);
91 template <
typename Arch,
typename T>
92 void Tester<Arch,T>::add_test()
94 typedef typename utils::ModifiedJulianClock::time_point StartTime;
95 typedef data::DmTrials<Arch,T> DmTrialsType;
96 typedef typename DmTrialsType::TimeType TimeType;
97 typedef typename DmTrialsType::DmType Dm;
98 auto buffer = DmTime<DmTrialsType>::make_shared();
99 DmTrialsGeneratorUtil<DmTrialsType> trials_generator;
100 StartTime epoch(utils::julian_day(50000.0));
101 trials_generator.epoch(epoch);
102 buffer->add(trials_generator.generate(TimeType(0.1*data::seconds),10,10));
103 trials_generator.epoch(epoch+std::chrono::microseconds(12312));
104 buffer->add(trials_generator.generate(TimeType(0.1*data::seconds),10,10));
105 trials_generator.epoch(epoch+std::chrono::microseconds(12));
106 buffer->add(trials_generator.generate(TimeType(0.1*data::seconds),10,10));
107 trials_generator.epoch(epoch+std::chrono::microseconds(333));
108 buffer->add(trials_generator.generate(TimeType(0.1*data::seconds),10,10));
109 trials_generator.epoch(epoch+std::chrono::microseconds(111));
110 buffer->add(trials_generator.generate(TimeType(0.1*data::seconds),10,10));
111 trials_generator.epoch(epoch+std::chrono::microseconds(1000));
112 buffer->add(trials_generator.generate(TimeType(0.1*data::seconds),10,10));
114 auto& blocks = buffer->blocks();
115 auto prev = blocks.begin();
116 auto next = blocks.begin();
118 while (next != blocks.end())
120 ASSERT_TRUE((*prev)->start_time() < (*next)->start_time());
Some limits and constants for FLDO.