LCOV - code coverage report
Current view: top level - Mock - FFTCheckerFilter.cpp (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 22 22 100.0 %
Date: 2021-02-18 20:07:22 Functions: 5 6 83.3 %

          Line data    Source code
       1             : /**
       2             :  * \file FFTCheckerFilter.cpp
       3             :  */
       4             : 
       5             : #include "FFTCheckerFilter.h"
       6             : 
       7             : #include <gtest/gtest.h>
       8             : 
       9             : #include <cmath>
      10             : 
      11             : namespace ATK
      12             : {
      13             :   template<class DataType_>
      14         313 :   FFTCheckerFilter<DataType_>::FFTCheckerFilter()
      15         313 :   :TypedBaseFilter<DataType_>(1, 0)
      16             :   {
      17         313 :   }
      18             :   
      19             :   template<class DataType_>
      20         313 :   FFTCheckerFilter<DataType_>::~FFTCheckerFilter()
      21             :   {
      22         313 :   }
      23             :   
      24             :   template<class DataType_>
      25         313 :   void FFTCheckerFilter<DataType_>::set_checks(const std::vector<std::pair<int, DataType> >& frequency_checks)
      26             :   {
      27         313 :     this->frequency_checks = frequency_checks;
      28         313 :   }
      29             : 
      30             :   template<class DataType_>
      31         313 :   void FFTCheckerFilter<DataType_>::setup()
      32             :   {
      33         313 :     FFTimpl->set_size(input_sampling_rate);
      34         313 :   }
      35             :   
      36             :   template<class DataType_>
      37         314 :   void FFTCheckerFilter<DataType_>::process_impl(gsl::index size) const
      38             :   {
      39         922 :     for(gsl::index i = 0; i < size/input_sampling_rate; ++i)
      40             :     {
      41         608 :       FFTimpl->process(converted_inputs[0] + i * input_sampling_rate, input_sampling_rate);
      42         608 :       std::vector<DataType_> output_freqs;
      43         608 :       FFTimpl->get_amp(output_freqs);
      44             :       
      45        2445 :       for(gsl::index j = 0; j < frequency_checks.size(); ++j)
      46             :       {
      47        1837 :         DataType amp = output_freqs[frequency_checks[j].first];
      48        1837 :         DataType amp_check = frequency_checks[j].second * frequency_checks[j].second;
      49        1837 :         if(amp_check < 0.001)
      50             :         {
      51        1232 :           ASSERT_NEAR(amp, 0, 0.001);
      52             :         }
      53             :         else
      54             :         {
      55         605 :           ASSERT_NEAR(2 * amp, amp_check, 0.1);
      56             :         }
      57             :       }
      58             :     }
      59             :   }
      60             :   
      61             :   template class FFTCheckerFilter<double>;
      62             : }

Generated by: LCOV version TK-3.3.0-4-gdba42eea