24 #include "cheetah/data/cuda/test/FrequencyTimeTest.h" 25 #include "cheetah/data/TimeFrequency.h" 26 #include "cheetah/data/FrequencyTime.h" 27 #include "panda/Copy.h" 37 FrequencyTimeTest<T>::FrequencyTimeTest()
43 FrequencyTimeTest<T>::~FrequencyTimeTest()
48 void FrequencyTimeTest<T>::SetUp()
53 void FrequencyTimeTest<T>::TearDown()
57 template <
class Arch,
typename NumericalRepT,
typename OtherNumericalRepT>
61 typedef Arch Architecture;
62 typedef NumericalRepT FirstType;
63 typedef NumericalRepT SecondType;
66 typedef ::testing::Types<DataTypes<Cuda, uint8_t, uint8_t>,
90 typedef typename TypeParam::Architecture Arch;
91 typedef typename TypeParam::FirstType NumericalRep;
92 typedef typename TypeParam::SecondType OtherNumericalRep;
96 std::random_device rd;
97 std::mt19937 mt(rd());
98 std::uniform_int_distribution<int> nspectra(8, 1024);
99 std::uniform_int_distribution<int> nchans(8, 32);
101 data::DimensionSize<data::Time> number_of_spectra(nspectra(mt));
102 data::DimensionSize<data::Frequency> number_of_channels(nchans(mt));
104 FtDataType tf_host_data(number_of_spectra, number_of_channels);
106 srand((
unsigned) time(0));
107 std::generate(tf_host_data.begin(), tf_host_data.end(), [&]() {
return rand()%255; });
109 auto f1 =
typename data::TimeFrequency<Cpu, NumericalRep>::FrequencyType(100.0 * boost::units::si::hertz);
110 auto f2 =
typename data::TimeFrequency<Cpu, NumericalRep>::FrequencyType(200.0 * boost::units::si::hertz);
111 typename utils::ModifiedJulianClock::time_point epoch(utils::julian_day(50000.0));
112 auto delta = (f2 - f1)/ (
double)(number_of_channels-1);
114 tf_host_data.set_channel_frequencies_const_width( f1, delta);
115 tf_host_data.start_time(epoch);
122 ASSERT_EQ(output_data_copy.number_of_spectra(), number_of_spectra);
123 ASSERT_EQ(output_data_copy.number_of_channels(), number_of_channels);
125 for(
unsigned i=0; i < input_data_copy.number_of_spectra(); ++i)
129 auto input_channel_it = input_spectrum.begin();
131 auto output_channel_it = output_spectrum.begin();
132 while(input_channel_it != input_spectrum.end())
134 ASSERT_EQ(*input_channel_it, *output_channel_it);
144 typedef typename TypeParam::Architecture Arch;
145 typedef typename TypeParam::FirstType NumericalRep;
146 typedef typename TypeParam::SecondType OtherNumericalRep;
149 std::random_device rd;
150 std::mt19937 mt(rd());
151 std::uniform_int_distribution<int> nspectra(8, 1024);
152 std::uniform_int_distribution<int> nchans(8, 32);
154 data::DimensionSize<data::Time> number_of_spectra(nspectra(mt));
155 data::DimensionSize<data::Frequency> number_of_channels(nchans(mt));
157 TfDataType tf_host_data(number_of_spectra, number_of_channels);
159 srand((
unsigned) time(0));
160 std::generate(tf_host_data.begin(), tf_host_data.end(), [&]() {
return ((rand())%255); });
162 auto f1 =
typename data::TimeFrequency<Cpu, NumericalRep>::FrequencyType(100.0 * boost::units::si::hertz);
163 auto f2 =
typename data::TimeFrequency<Cpu, NumericalRep>::FrequencyType(200.0 * boost::units::si::hertz);
164 typename utils::ModifiedJulianClock::time_point epoch(utils::julian_day(50000.0));
165 auto delta = (f2 - f1)/ (
double)(number_of_channels-1);
167 tf_host_data.set_channel_frequencies_const_width( f1, delta);
168 tf_host_data.start_time(epoch);
175 ASSERT_EQ(output_data_copy.number_of_spectra(), number_of_spectra);
176 ASSERT_EQ(output_data_copy.number_of_channels(), number_of_channels);
178 for(
unsigned i=0; i < input_data_copy.number_of_spectra(); ++i)
182 auto input_channel_it = input_spectrum.begin();
184 auto output_channel_it = output_spectrum.begin();
185 while(input_channel_it != input_spectrum.end())
187 ASSERT_EQ(*input_channel_it, *output_channel_it);
BaseT::Spectra Spectra
Iterator class for accessing each time sample.
Some limits and constants for FLDO.