def tick(self):
        while self.active:
            for coil in self.ball_search_coils:
                self.pop_coil(coil)
                yield Timing.secs(self.machine.config['ball_search']\
                    ['secs between ball search coils'])
            yield Timing.secs(self.machine.config['ball_search']\
                    ['secs between ball search rounds'])
        # todo do we have to deal with switches that might be hit due to these
        # coils firing?
        # todo should the above code also look for self.active?
Test corner cases of  periodogram_csd
dataset/ETHPy150Open missionpinball/mpf/mpf/plugins/ball_search.py/BallSearch.tick--crossover with--dataset/ETHPy150Open nipy/nitime/nitime/algorithms/tests/test_spectral.py/test_periodogram_csd