24 #include "cheetah/brdz/test_utils/BrdzTester.h" 25 #include "cheetah/data/FrequencySeries.h" 26 #include "cheetah/utils/Architectures.h" 33 template<
typename ArchitectureTag,
typename ArchitectureCapability>
34 BrdzTesterTraits<ArchitectureTag,ArchitectureCapability>::BrdzTesterTraits()
39 template<
typename ArchitectureTag,
typename ArchitectureCapability>
40 brdz::Brdz& BrdzTesterTraits<ArchitectureTag,ArchitectureCapability>::api()
45 template<
typename ArchitectureTag,
typename ArchitectureCapability>
46 brdz::Config& BrdzTesterTraits<ArchitectureTag,ArchitectureCapability>::config()
51 template <
typename DeviceType,
typename Arch,
typename T >
58 auto fill_value = ComplexType(1.0, 1.0);
59 auto replace_value = ComplexType(0.0, 0.0);
60 DataType input(0.001 * data::hz);
61 input.resize(1<<23,fill_value);
62 std::vector<data::Birdie> birdies;
63 data::FourierFrequencyType width(5 * 0.001 * data::hz);
64 for (
int ii=100;ii<(1<<23);ii+=10000)
66 auto freq = input.bin_to_frequency(ii);
69 config.
birdies(birdies.begin(),birdies.end());
70 api.
process<Arch,T,
typename DataType::AllocatorType>(device,input);
71 for (
auto& birdie: birdies)
73 std::size_t lower = input.frequency_to_bin(birdie.frequency()-birdie.width()/2.0);
74 std::size_t upper = input.frequency_to_bin(birdie.frequency()+birdie.width()/2.0);
75 lower = std::max(std::size_t(0),lower);
76 upper = std::min(upper,input.size());
77 for (std::size_t bin = lower; bin < upper; ++bin)
79 ComplexType x = input[bin];
80 ASSERT_EQ(x,replace_value);
86 template <
typename TestTraits>
92 template <
typename TestTraits>
97 template<
typename TestTraits>
102 template<
typename TestTraits>
107 ALGORITHM_TYPED_TEST_P(
BrdzTester, test_excision)
116 REGISTER_TYPED_TEST_CASE_P(
BrdzTester, test_excision);
void process(panda::PoolResource< Arch > &resource, data::FrequencySeries< Arch, typename data::ComplexTypeTraits< Arch, T >::type, Alloc > &input, Args &&... args)
Excise the power for birdie frequencies in a spectrum.
Configuration for the BRDZ module.
A container of Fourier series data.
A helper class to determine the type of complex data for different architectures. ...
Some limits and constants for FLDO.
Class for storing birdies (known RFI periodicities/frequencies)
std::vector< data::Birdie > const & birdies() const
Get the birdie list.
Class for performing birdie zapping.