annotate yetilab/vector/test/test_vector.yeti @ 222:77c6a81c577f matrix_opaque_immutable

Move block directory -> vector
author Chris Cannam
date Sat, 11 May 2013 15:58:36 +0100
parents yetilab/block/test/test_vector.yeti@8e79cf8a4399
children de770971a628
rev   line source
Chris@27 1
Chris@222 2 module yetilab.vector.test.test_vector;
Chris@27 3
Chris@222 4 vec = load yetilab.vector.vector;
Chris@27 5
Chris@93 6 { compare } = load yetilab.test.test;
Chris@53 7
Chris@53 8 [
Chris@27 9
Chris@27 10 "zeros-empty": \(
Chris@27 11 v = vec.zeros 0;
Chris@53 12 compare (vec.length v) 0;
Chris@27 13 ),
Chris@27 14
Chris@27 15 "zeros": \(
Chris@27 16 v = vec.zeros 3;
Chris@211 17 a = vec.array v;
Chris@53 18 compare (vec.length v) 3 and
Chris@211 19 compare a[0] 0 and
Chris@211 20 compare a[1] 0 and
Chris@211 21 compare a[2] 0;
Chris@27 22 ),
Chris@27 23
Chris@36 24 "consts-empty": \(
Chris@36 25 v = vec.consts 4 0;
Chris@53 26 compare (vec.length v) 0;
Chris@36 27 ),
Chris@36 28
Chris@36 29 "consts": \(
Chris@36 30 v = vec.consts 4 3;
Chris@211 31 a = vec.array v;
Chris@53 32 compare (vec.length v) 3 and
Chris@211 33 compare a[0] 4 and
Chris@211 34 compare a[1] 4 and
Chris@211 35 compare a[2] 4;
Chris@36 36 ),
Chris@36 37
Chris@27 38 "ones-empty": \(
Chris@27 39 v = vec.ones 0;
Chris@53 40 compare (vec.length v) 0;
Chris@27 41 ),
Chris@27 42
Chris@27 43 "ones": \(
Chris@27 44 v = vec.ones 3;
Chris@211 45 a = vec.array v;
Chris@53 46 compare (vec.length v) 3 and
Chris@211 47 compare a[0] 1 and
Chris@211 48 compare a[1] 1 and
Chris@211 49 compare a[2] 1;
Chris@27 50 ),
Chris@27 51
Chris@27 52 "from-list-empty": \(
Chris@211 53 v = vec.fromList [];
Chris@53 54 compare (vec.length v) 0;
Chris@27 55 ),
Chris@27 56
Chris@27 57 "from-list": \(
Chris@211 58 v = vec.fromList [1,2,3,4];
Chris@211 59 a = vec.array v;
Chris@53 60 compare (vec.length v) 4 and
Chris@211 61 compare a[0] 1 and
Chris@211 62 compare a[1] 2 and
Chris@211 63 compare a[2] 3 and
Chris@211 64 compare a[3] 4;
Chris@27 65 ),
Chris@27 66
Chris@27 67 "equal-empty": \(
Chris@211 68 vec.equal (vec.fromList []) (vec.fromList [])
Chris@27 69 ),
Chris@27 70
Chris@27 71 "equal": \(
Chris@211 72 v = vec.fromList [1,1,1,1];
Chris@27 73 w = vec.ones 4;
Chris@27 74 w' = vec.zeros 4;
Chris@27 75 w'' = vec.ones 3;
Chris@27 76 vec.equal v w and not vec.equal v w' and not vec.equal v w'';
Chris@27 77 ),
Chris@211 78 /*
Chris@27 79 "copyOf-empty": \(
Chris@211 80 vec.equal (vec.fromList []) (vec.copyOf (vec.fromList []))
Chris@27 81 ),
Chris@27 82
Chris@27 83 "copyOf": \(
Chris@211 84 v = vec.fromList [1,2,3,4];
Chris@27 85 w = vec.copyOf v;
Chris@27 86 vec.equal v w and (
Chris@27 87 v[0] := 0; // check result is not aliasing inputs
Chris@27 88 not vec.equal v w
Chris@27 89 );
Chris@27 90 ),
Chris@211 91 */
Chris@27 92 "rangeOf": \(
Chris@211 93 v = vec.fromList [1,2,3,4];
Chris@186 94 vec.equal (vec.rangeOf 0 4 v) v and (
Chris@211 95 vec.equal (vec.rangeOf 2 2 v) (vec.fromList [3,4])
Chris@27 96 )
Chris@27 97 ),
Chris@27 98
Chris@27 99 "resizedTo": \(
Chris@211 100 vec.equal (vec.resizedTo 4 (vec.fromList [])) (vec.zeros 4) and
Chris@211 101 vec.equal (vec.resizedTo 2 (vec.fromList [1,2])) (vec.fromList [1,2]) and
Chris@211 102 vec.equal (vec.resizedTo 3 (vec.fromList [1,2])) (vec.fromList [1,2,0]) and
Chris@211 103 vec.equal (vec.resizedTo 2 (vec.fromList [1,2,3])) (vec.fromList [1,2]);
Chris@27 104 ),
Chris@27 105
Chris@35 106 "concat2": \(
Chris@211 107 v = vec.fromList [1,2,3];
Chris@211 108 w = vec.fromList [4,5,6];
Chris@35 109 x = vec.concat [v, w];
Chris@211 110 x' = vec.fromList [1,2,3,4,5,6];
Chris@27 111 vec.equal x x' and
Chris@211 112 /* (v[0] := 0; // check result is not aliasing inputs
Chris@27 113 w[0] := 0;
Chris@211 114 vec.equal x x') and */
Chris@211 115 vec.equal x' (vec.concat [x', vec.fromList []]) and
Chris@211 116 vec.equal x' (vec.concat [vec.fromList [], x'])
Chris@35 117 ),
Chris@35 118
Chris@35 119 "concatn": \(
Chris@211 120 v = vec.fromList [1,2,3];
Chris@211 121 w = vec.fromList [4,5,6];
Chris@35 122 vec.equal (vec.concat []) (vec.zeros 0) and
Chris@35 123 vec.equal (vec.concat [v]) v and
Chris@211 124 vec.equal (vec.concat [v,w,v]) (vec.fromList [1,2,3,4,5,6,1,2,3])
Chris@27 125 ),
Chris@27 126
Chris@53 127 ] is hash<string, () -> boolean>;
Chris@27 128
Chris@28 129
Chris@53 130