Chris@222
|
1 module yetilab.vector.test.test_complex;
|
Chris@53
|
2
|
Chris@145
|
3 { real, imaginary, complex, magnitude, angle, add, scale, zeros, magnitudes, angles }
|
Chris@222
|
4 = load yetilab.vector.complex;
|
Chris@53
|
5
|
Chris@93
|
6 { compare } = load yetilab.test.test;
|
Chris@53
|
7
|
Chris@222
|
8 vec = load yetilab.vector.vector;
|
Chris@145
|
9
|
Chris@53
|
10 [
|
Chris@53
|
11
|
Chris@53
|
12 "complex": \(
|
Chris@53
|
13 compare (complex 1 2) (complex 1 2) and
|
Chris@53
|
14 complex (-1) 2 != complex 1 2
|
Chris@53
|
15 ),
|
Chris@53
|
16
|
Chris@53
|
17 "real": \(
|
Chris@53
|
18 compare (real (complex 3 2)) 3
|
Chris@53
|
19 ),
|
Chris@53
|
20
|
Chris@53
|
21 "imaginary": \(
|
Chris@53
|
22 compare (imaginary (complex 3 4)) 4
|
Chris@53
|
23 ),
|
Chris@53
|
24
|
Chris@53
|
25 "magnitude": \(
|
Chris@53
|
26 compare (magnitude (complex (-3) 4)) 5
|
Chris@53
|
27 ),
|
Chris@53
|
28
|
Chris@53
|
29 "angle": \(
|
Chris@53
|
30 compare (angle (complex 1 0)) 0 and
|
Chris@53
|
31 compare (angle (complex 1 1)) (pi/4) and
|
Chris@53
|
32 compare (angle (complex 0 1)) (pi/2) and
|
Chris@53
|
33 compare (angle (complex (-1) 0)) pi and
|
Chris@53
|
34 compare (angle (complex 0 (-1))) (-pi/2)
|
Chris@53
|
35 ),
|
Chris@53
|
36
|
Chris@53
|
37 "add": \(
|
Chris@53
|
38 compare (add (complex 2 3) (complex (-4) 5)) (complex (-2) 8)
|
Chris@53
|
39 ),
|
Chris@53
|
40
|
Chris@53
|
41 "scale": \(
|
Chris@53
|
42 compare (scale 4 (complex 2 3)) (complex 8 12)
|
Chris@53
|
43 ),
|
Chris@53
|
44
|
Chris@142
|
45 "zeros": \(
|
Chris@142
|
46 compare (zeros 0) (array []) and
|
Chris@142
|
47 compare (zeros 3) (array [complex 0 0, complex 0 0, complex 0 0])
|
Chris@142
|
48 ),
|
Chris@142
|
49
|
Chris@145
|
50 "magnitudes": \(
|
Chris@218
|
51 compare (vec.list (magnitudes [ complex (-3) 4, complex 4 3, complex 0 0 ]))
|
Chris@145
|
52 [ 5, 5, 0 ] and
|
Chris@218
|
53 compare (vec.list (magnitudes (array []))) []
|
Chris@145
|
54 ),
|
Chris@145
|
55
|
Chris@145
|
56 "angles": \(
|
Chris@218
|
57 compare (vec.list (angles [ complex 1 0, complex (-1) 0, complex 0 (-1) ]))
|
Chris@145
|
58 [ 0, pi, -pi/2 ] and
|
Chris@218
|
59 compare (vec.list (angles (array []))) []
|
Chris@145
|
60 ),
|
Chris@145
|
61
|
Chris@145
|
62
|
Chris@53
|
63 ] is hash<string, () -> boolean>;
|
Chris@53
|
64
|
Chris@53
|
65
|
Chris@53
|
66
|