annotate test/test_fvector.yeti @ 89:ef650ce77237

Start trying to adapt grids
author Chris Cannam
date Mon, 18 Mar 2013 21:24:04 +0000
parents d037211bf5d7
children
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
Chris@53 6 { compare } = load 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@53 17 compare (vec.length v) 3 and
Chris@53 18 compare v[0] 0 and
Chris@53 19 compare v[1] 0 and
Chris@53 20 compare v[2] 0;
Chris@27 21 ),
Chris@27 22
Chris@36 23 "consts-empty": \(
Chris@36 24 v = vec.consts 4 0;
Chris@53 25 compare (vec.length v) 0;
Chris@36 26 ),
Chris@36 27
Chris@36 28 "consts": \(
Chris@36 29 v = vec.consts 4 3;
Chris@53 30 compare (vec.length v) 3 and
Chris@53 31 compare v[0] 4 and
Chris@53 32 compare v[1] 4 and
Chris@53 33 compare v[2] 4;
Chris@36 34 ),
Chris@36 35
Chris@27 36 "ones-empty": \(
Chris@27 37 v = vec.ones 0;
Chris@53 38 compare (vec.length v) 0;
Chris@27 39 ),
Chris@27 40
Chris@27 41 "ones": \(
Chris@27 42 v = vec.ones 3;
Chris@53 43 compare (vec.length v) 3 and
Chris@53 44 compare v[0] 1 and
Chris@53 45 compare v[1] 1 and
Chris@53 46 compare v[2] 1;
Chris@27 47 ),
Chris@27 48
Chris@27 49 "from-list-empty": \(
Chris@27 50 v = vec.vector [];
Chris@53 51 compare (vec.length v) 0;
Chris@27 52 ),
Chris@27 53
Chris@27 54 "from-list": \(
Chris@27 55 v = vec.vector [1,2,3,4];
Chris@53 56 compare (vec.length v) 4 and
Chris@53 57 compare v[0] 1 and
Chris@53 58 compare v[1] 2 and
Chris@53 59 compare v[2] 3 and
Chris@53 60 compare v[3] 4;
Chris@27 61 ),
Chris@27 62
Chris@27 63 "equal-empty": \(
Chris@27 64 vec.equal (vec.vector []) (vec.vector [])
Chris@27 65 ),
Chris@27 66
Chris@27 67 "equal": \(
Chris@27 68 v = vec.vector [1,1,1,1];
Chris@27 69 w = vec.ones 4;
Chris@27 70 w' = vec.zeros 4;
Chris@27 71 w'' = vec.ones 3;
Chris@27 72 vec.equal v w and not vec.equal v w' and not vec.equal v w'';
Chris@27 73 ),
Chris@27 74
Chris@27 75 "copyOf-empty": \(
Chris@27 76 vec.equal (vec.vector []) (vec.copyOf (vec.vector []))
Chris@27 77 ),
Chris@27 78
Chris@27 79 "copyOf": \(
Chris@27 80 v = vec.vector [1,2,3,4];
Chris@27 81 w = vec.copyOf v;
Chris@27 82 vec.equal v w and (
Chris@27 83 v[0] := 0; // check result is not aliasing inputs
Chris@27 84 not vec.equal v w
Chris@27 85 );
Chris@27 86 ),
Chris@27 87
Chris@27 88 "rangeOf": \(
Chris@27 89 v = vec.vector [1,2,3,4];
Chris@27 90 vec.equal (vec.rangeOf v 0 4) v and (
Chris@27 91 vec.equal (vec.rangeOf v 2 2) (vec.vector [3,4])
Chris@27 92 )
Chris@27 93 ),
Chris@27 94
Chris@27 95 "resizedTo": \(
Chris@27 96 vec.equal (vec.resizedTo 4 (vec.vector [])) (vec.zeros 4) and
Chris@27 97 vec.equal (vec.resizedTo 2 (vec.vector [1,2])) (vec.vector [1,2]) and
Chris@27 98 vec.equal (vec.resizedTo 3 (vec.vector [1,2])) (vec.vector [1,2,0]) and
Chris@27 99 vec.equal (vec.resizedTo 2 (vec.vector [1,2,3])) (vec.vector [1,2]);
Chris@27 100 ),
Chris@27 101
Chris@35 102 "concat2": \(
Chris@27 103 v = vec.vector [1,2,3];
Chris@27 104 w = vec.vector [4,5,6];
Chris@35 105 x = vec.concat [v, w];
Chris@27 106 x' = vec.vector [1,2,3,4,5,6];
Chris@27 107 vec.equal x x' and
Chris@27 108 (v[0] := 0; // check result is not aliasing inputs
Chris@27 109 w[0] := 0;
Chris@27 110 vec.equal x x') and
Chris@35 111 vec.equal x' (vec.concat [x', vec.vector []]) and
Chris@35 112 vec.equal x' (vec.concat [vec.vector [], x'])
Chris@35 113 ),
Chris@35 114
Chris@35 115 "concatn": \(
Chris@35 116 v = vec.vector [1,2,3];
Chris@35 117 w = vec.vector [4,5,6];
Chris@35 118 vec.equal (vec.concat []) (vec.zeros 0) and
Chris@35 119 vec.equal (vec.concat [v]) v and
Chris@35 120 vec.equal (vec.concat [v,w,v]) (vec.vector [1,2,3,4,5,6,1,2,3])
Chris@27 121 ),
Chris@27 122
Chris@53 123 ] is hash<string, () -> boolean>;
Chris@27 124
Chris@28 125
Chris@53 126