# Most of the work is now done in fft_base. Below are factories for # creating a test for each backend of each scheme. # Get our list of backends: backends = pycbc.fft.get_backend_names() FFTTestClasses = [] for backend in backends: # This creates, for each backend, a new class derived from # both _BaseTestFFTClass and unittest.TestCase, and with # the additional property 'self.backend' set to the value # of backend. One such class for each backend is appended # to the list kdict = {'backends' : [backend], 'scheme' : _scheme, 'context' : _context} klass = type('{0}_{1}_test'.format(_scheme,backend), (_BaseTestFFTClass,),kdict) FFTTestClasses.append(klass) # Finally, we create suites and run them if __name__ == '__main__': suite = unittest.TestSuite() for klass in FFTTestClasses: suite.addTest(unittest.TestLoader().loadTestsFromTestCase(klass)) results = unittest.TextTestRunner(verbosity=2).run(suite) simple_exit(results)
if self.scheme != 'cpu': with self.context: self.assertRaises(TypeError, resample_to_delta_t, self.a, self.target_delta_t) def test_lfilter(self): "Check our hand written lfilter" c = uniform(-10, 10, size=1024) ts = uniform(-1, 1, size=4323) ref = scipy.signal.lfilter(c, 1.0, ts) test = lfilter(c, ts) # These only agree where there is no fft wraparound # so excluded corrupted region from test ref = ref[len(c):] test = test[len(c):] maxreldiff = ((ref - test) / ref).max() self.assertTrue(maxreldiff < 1e-7) suite = unittest.TestSuite() suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestUtils)) if __name__ == '__main__': results = unittest.TextTestRunner(verbosity=2).run(suite) simple_exit(results)