Chris@41: Chris@41: module test.test_fft; Chris@41: Chris@41: { fft } = load fft; Chris@41: { fromList, list } = load block; Chris@41: { declare, compare } = load test.test; Chris@41: Chris@41: declare [ Chris@41: Chris@41: "dc": \( Chris@41: out = fft 4 (fromList [1,1,1,1]); Chris@41: compare out (array [{re=4, im=0}, {re=0, im=0}, {re=0, im=0}]) Chris@41: ), Chris@41: Chris@41: "sine": \( Chris@41: out = fft 4 (fromList [0,1,0,-1]); Chris@41: compare out (array [{re=0, im=0}, {re=0, im=(-2)}, {re=0, im=0}]) Chris@41: ), Chris@41: Chris@41: "cosine": \( Chris@41: out = fft 4 (fromList [1,0,-1,0]); Chris@41: compare out (array [{re=0, im=0}, {re=2, im=0}, {re=0, im=0}]) Chris@41: ), Chris@41: Chris@41: "sineCosine": \( Chris@41: out = fft 4 (fromList [0.5,1,-0.5,-1]); Chris@41: compare out (array [{re=0, im=0}, {re=1, im=(-2)}, {re=0, im=0}]) Chris@41: ), Chris@41: Chris@41: "nyquist": \( Chris@41: out = fft 4 (fromList [1,-1,1,-1]); Chris@41: compare out (array [{re=0, im=0}, {re=0, im=0}, {re=4, im=0}]) Chris@41: ), Chris@41: Chris@41: "dirac": \( Chris@41: out = fft 4 (fromList [1,0,0,0]); Chris@41: compare out (array [{re=1, im=0}, {re=1, im=0}, {re=1, im=0}]) Chris@41: ), Chris@41: Chris@41: ]; Chris@41: Chris@41: