Files @ 4d58737e66bd
Branch filter:

Location: Shamira/src/shamira/tests/test_fft.py

Laman
fourier transform
# GNU GPLv3, see LICENSE

from unittest import TestCase

from ..fft import *


class TestFFT(TestCase):
	def test_dft(self):
		self.assertEqual(dft([0]), [0+0j])
		self.assertEqual(dft([1]), [1+0j])
		self.assertEqual(dft([2]), [2+0j])
		all(self.assertAlmostEqual(a, b) for (a, b) in zip(dft([3, 1]), [4+0j, 2+0j]))
		all(self.assertAlmostEqual(a, b) for (a, b) in zip(dft([3, 1, 4]), [8+0j, 0.5+2.59807621j, 0.5-2.59807621j]))
		all(self.assertAlmostEqual(a, b) for (a, b) in zip(dft([3, 1, 4, 1]), [9+0j, -1+0j, 5+0j, -1+0j]))
		all(self.assertAlmostEqual(a, b) for (a, b) in zip(
			dft([3, 1, 4, 1, 5]),
			[14+0j, 0.80901699+2.04087031j, -0.30901699+5.20431056j, -0.30901699-5.20431056j, 0.80901699-2.04087031j]
		))