24 #include "cheetah/data/test/TimeFrequencyMetadataTest.h" 25 #include "cheetah/data/TimeFrequencyMetadata.h" 34 TimeFrequencyMetadataTest::TimeFrequencyMetadataTest()
39 TimeFrequencyMetadataTest::~TimeFrequencyMetadataTest()
43 void TimeFrequencyMetadataTest::SetUp()
47 void TimeFrequencyMetadataTest::TearDown()
51 TEST_F(TimeFrequencyMetadataTest, test_start_time)
53 typedef TimeFrequencyMetadata DataType;
56 typename utils::ModifiedJulianClock::time_point epoch(utils::julian_day(50000.0));
57 typename DataType::TimeIntervalType interval(1.0 * boost::units::si::milli * boost::units::si::seconds);
58 meta.sample_interval(interval);
59 meta.start_time(epoch);
60 ASSERT_EQ(meta.start_time(), epoch);
63 TEST_F(TimeFrequencyMetadataTest, test_start_time_offset)
65 typedef TimeFrequencyMetadata DataType;
68 typename utils::ModifiedJulianClock::time_point epoch(utils::julian_day(50000.0));
69 typename DataType::TimeIntervalType interval(1.0 * boost::units::si::milli * boost::units::si::seconds);
70 meta.sample_interval(interval);
71 meta.start_time(epoch);
72 epoch += std::chrono::duration<double>(meta.sample_interval().value()*std::size_t(12));
73 ASSERT_EQ(meta.start_time(12L), epoch);
76 TEST_F(TimeFrequencyMetadataTest, test_copy)
78 typedef TimeFrequencyMetadata DataType;
79 data::DimensionSize<data::Frequency> number_of_channels(10U);
82 auto f1 =
typename DataType::FrequencyType(10.0 * boost::units::si::hertz);
83 auto f2 =
typename DataType::FrequencyType(20.0 * boost::units::si::hertz);
84 typename utils::ModifiedJulianClock::time_point epoch(utils::julian_day(50000.0));
85 auto delta = (f2 - f1)/ (
double)(number_of_channels-1);
87 meta.channel_frequencies_const_width( f1, delta, number_of_channels );
88 meta.start_time(epoch);
90 DataType meta_copy(meta);
91 ASSERT_EQ(meta_copy.channel_frequencies().size(), number_of_channels);
92 for(std::size_t i =0; i < number_of_channels; ++i) {
93 ASSERT_EQ(meta_copy.channel_frequencies()[i], meta.channel_frequencies()[i]);
95 ASSERT_EQ(meta_copy.start_time(), meta.start_time());
98 TEST_F(TimeFrequencyMetadataTest, test_low_high_freq)
100 typedef TimeFrequencyMetadata DataType;
101 data::DimensionSize<data::Frequency> number_of_channels(10U);
104 typedef std::pair<typename DataType::FrequencyType, typename DataType::FrequencyType> ReturnType;
107 ReturnType r = meta.low_high_frequencies();
108 ASSERT_EQ(0.0, r.first.value());
109 ASSERT_EQ(0.0, r.second.value());
111 auto f1 =
typename DataType::FrequencyType(10.0 * boost::units::si::hertz);
112 auto f2 =
typename DataType::FrequencyType(20.0 * boost::units::si::hertz);
113 auto delta = (f2 - f1)/ (
double)(number_of_channels-1);
116 meta.channel_frequencies_const_width( f1, delta, number_of_channels );
117 ASSERT_EQ(meta.channel_frequencies().size(), number_of_channels);
118 r = meta.low_high_frequencies();
119 ASSERT_EQ(f1, r.first);
120 ASSERT_EQ(f2, r.second);
123 meta.channel_frequencies_const_width( f2, -1.0 *delta, number_of_channels );
124 ASSERT_EQ(meta.channel_frequencies().size(), number_of_channels);
125 r = meta.low_high_frequencies();
126 ASSERT_EQ(f1, r.first);
127 ASSERT_EQ(f2, r.second);
Some limits and constants for FLDO.