annotate test/test_fvector.yeti @ 46:00b604d7faf9

Use complex class for output of FFT
author Chris Cannam
date Sat, 29 Dec 2012 14:36:13 +0000
parents fa49869bda51
children d037211bf5d7
rev   line source
Chris@27 1
Chris@27 2 module test.test_fvector;
Chris@27 3
Chris@27 4 vec = load fvector;
Chris@27 5 t = load test.test;
Chris@27 6
Chris@33 7 t.declare [
Chris@27 8
Chris@27 9 "zeros-empty": \(
Chris@27 10 v = vec.zeros 0;
Chris@27 11 t.compare (vec.length v) 0;
Chris@27 12 ),
Chris@27 13
Chris@27 14 "zeros": \(
Chris@27 15 v = vec.zeros 3;
Chris@27 16 t.compare (vec.length v) 3 and
Chris@27 17 t.compare v[0] 0 and
Chris@27 18 t.compare v[1] 0 and
Chris@27 19 t.compare v[2] 0;
Chris@27 20 ),
Chris@27 21
Chris@36 22 "consts-empty": \(
Chris@36 23 v = vec.consts 4 0;
Chris@36 24 t.compare (vec.length v) 0;
Chris@36 25 ),
Chris@36 26
Chris@36 27 "consts": \(
Chris@36 28 v = vec.consts 4 3;
Chris@36 29 t.compare (vec.length v) 3 and
Chris@36 30 t.compare v[0] 4 and
Chris@36 31 t.compare v[1] 4 and
Chris@36 32 t.compare v[2] 4;
Chris@36 33 ),
Chris@36 34
Chris@27 35 "ones-empty": \(
Chris@27 36 v = vec.ones 0;
Chris@27 37 t.compare (vec.length v) 0;
Chris@27 38 ),
Chris@27 39
Chris@27 40 "ones": \(
Chris@27 41 v = vec.ones 3;
Chris@27 42 t.compare (vec.length v) 3 and
Chris@27 43 t.compare v[0] 1 and
Chris@27 44 t.compare v[1] 1 and
Chris@27 45 t.compare v[2] 1;
Chris@27 46 ),
Chris@27 47
Chris@27 48 "from-list-empty": \(
Chris@27 49 v = vec.vector [];
Chris@27 50 t.compare (vec.length v) 0;
Chris@27 51 ),
Chris@27 52
Chris@27 53 "from-list": \(
Chris@27 54 v = vec.vector [1,2,3,4];
Chris@27 55 t.compare (vec.length v) 4 and
Chris@27 56 t.compare v[0] 1 and
Chris@27 57 t.compare v[1] 2 and
Chris@27 58 t.compare v[2] 3 and
Chris@27 59 t.compare v[3] 4;
Chris@27 60 ),
Chris@27 61
Chris@27 62 "equal-empty": \(
Chris@27 63 vec.equal (vec.vector []) (vec.vector [])
Chris@27 64 ),
Chris@27 65
Chris@27 66 "equal": \(
Chris@27 67 v = vec.vector [1,1,1,1];
Chris@27 68 w = vec.ones 4;
Chris@27 69 w' = vec.zeros 4;
Chris@27 70 w'' = vec.ones 3;
Chris@27 71 vec.equal v w and not vec.equal v w' and not vec.equal v w'';
Chris@27 72 ),
Chris@27 73
Chris@27 74 "copyOf-empty": \(
Chris@27 75 vec.equal (vec.vector []) (vec.copyOf (vec.vector []))
Chris@27 76 ),
Chris@27 77
Chris@27 78 "copyOf": \(
Chris@27 79 v = vec.vector [1,2,3,4];
Chris@27 80 w = vec.copyOf v;
Chris@27 81 vec.equal v w and (
Chris@27 82 v[0] := 0; // check result is not aliasing inputs
Chris@27 83 not vec.equal v w
Chris@27 84 );
Chris@27 85 ),
Chris@27 86
Chris@27 87 "rangeOf": \(
Chris@27 88 v = vec.vector [1,2,3,4];
Chris@27 89 vec.equal (vec.rangeOf v 0 4) v and (
Chris@27 90 vec.equal (vec.rangeOf v 2 2) (vec.vector [3,4])
Chris@27 91 )
Chris@27 92 ),
Chris@27 93
Chris@27 94 "resizedTo": \(
Chris@27 95 vec.equal (vec.resizedTo 4 (vec.vector [])) (vec.zeros 4) and
Chris@27 96 vec.equal (vec.resizedTo 2 (vec.vector [1,2])) (vec.vector [1,2]) and
Chris@27 97 vec.equal (vec.resizedTo 3 (vec.vector [1,2])) (vec.vector [1,2,0]) and
Chris@27 98 vec.equal (vec.resizedTo 2 (vec.vector [1,2,3])) (vec.vector [1,2]);
Chris@27 99 ),
Chris@27 100
Chris@35 101 "concat2": \(
Chris@27 102 v = vec.vector [1,2,3];
Chris@27 103 w = vec.vector [4,5,6];
Chris@35 104 x = vec.concat [v, w];
Chris@27 105 x' = vec.vector [1,2,3,4,5,6];
Chris@27 106 vec.equal x x' and
Chris@27 107 (v[0] := 0; // check result is not aliasing inputs
Chris@27 108 w[0] := 0;
Chris@27 109 vec.equal x x') and
Chris@35 110 vec.equal x' (vec.concat [x', vec.vector []]) and
Chris@35 111 vec.equal x' (vec.concat [vec.vector [], x'])
Chris@35 112 ),
Chris@35 113
Chris@35 114 "concatn": \(
Chris@35 115 v = vec.vector [1,2,3];
Chris@35 116 w = vec.vector [4,5,6];
Chris@35 117 vec.equal (vec.concat []) (vec.zeros 0) and
Chris@35 118 vec.equal (vec.concat [v]) v and
Chris@35 119 vec.equal (vec.concat [v,w,v]) (vec.vector [1,2,3,4,5,6,1,2,3])
Chris@27 120 ),
Chris@27 121
Chris@28 122 ];
Chris@27 123
Chris@28 124