OSDN Git Service

NUnit 2.6に移行
[karinto/karinto.git] / KarintoTest / FftTest.cs
1 /*\r
2  *      Karinto Library Project\r
3  *\r
4  *      This software is distributed under a zlib-style license.\r
5  *      See license.txt for more information.\r
6  */\r
7 \r
8 using System;\r
9 using System.Collections.Generic;\r
10 using System.Text;\r
11 using System.Diagnostics;\r
12 using Karinto;\r
13 using Karinto.Numeric;\r
14 using NUnit.Framework;\r
15 \r
16 namespace KarintoTest\r
17 {\r
18     [TestFixture]\r
19     public class FftTest\r
20     {\r
21 \r
22         [Test]\r
23         public void Test()\r
24         {\r
25             Complex[] input = MakeComplexSample();\r
26             Complex[] output = Fft.TransformForward(input);\r
27         }\r
28 \r
29         [Test]\r
30         public void RealToComplex()\r
31         {\r
32             double[] input = MakeRealSample();\r
33 \r
34             Fft r2c = new Fft(input.Length, Fft.Direction.Forward);\r
35 \r
36             Complex[] output; \r
37             r2c.Transform(input, out output);\r
38 \r
39         }\r
40 \r
41         private Complex[] MakeComplexSample()\r
42         {\r
43             Complex[] a = new Complex[64];\r
44             for (int i = 0; i < 16; ++i)\r
45             {\r
46                 a[i] = new Complex(i * 0.125, 0);\r
47             }\r
48             for (int i = 16; i < 48; ++i)\r
49             {\r
50                 a[i] = new Complex(4.0 - i * 0.125, 0);\r
51             }\r
52             for (int i = 48; i < 64; ++i)\r
53             {\r
54                 a[i] = new Complex(i * 0.125 - 8.0, 0);\r
55             }\r
56             return a;\r
57         }\r
58 \r
59         private double[] MakeRealSample()\r
60         {\r
61             double[] a = new double[64];\r
62             for (int i = 0; i < 16; ++i)\r
63             {\r
64                 a[i] = i * 0.125;\r
65             }\r
66             for (int i = 16; i < 48; ++i)\r
67             {\r
68                 a[i] = 4.0 - i * 0.125;\r
69             }\r
70             for (int i = 48; i < 64; ++i)\r
71             {\r
72                 a[i] = i * 0.125 - 8.0;\r
73             }\r
74             return a;\r
75         }\r
76     }\r
77 }\r