annotate test/test_fvector.yeti @ 34:d36c679577a1

Vestigial Vamp plugin thingy
author Chris Cannam
date Fri, 21 Dec 2012 22:56:45 +0000
parents e20d3c23a243
children 1f80673af4c7
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@27 22 "ones-empty": \(
Chris@27 23 v = vec.ones 0;
Chris@27 24 t.compare (vec.length v) 0;
Chris@27 25 ),
Chris@27 26
Chris@27 27 "ones": \(
Chris@27 28 v = vec.ones 3;
Chris@27 29 t.compare (vec.length v) 3 and
Chris@27 30 t.compare v[0] 1 and
Chris@27 31 t.compare v[1] 1 and
Chris@27 32 t.compare v[2] 1;
Chris@27 33 ),
Chris@27 34
Chris@27 35 "from-list-empty": \(
Chris@27 36 v = vec.vector [];
Chris@27 37 t.compare (vec.length v) 0;
Chris@27 38 ),
Chris@27 39
Chris@27 40 "from-list": \(
Chris@27 41 v = vec.vector [1,2,3,4];
Chris@27 42 t.compare (vec.length v) 4 and
Chris@27 43 t.compare v[0] 1 and
Chris@27 44 t.compare v[1] 2 and
Chris@27 45 t.compare v[2] 3 and
Chris@27 46 t.compare v[3] 4;
Chris@27 47 ),
Chris@27 48
Chris@27 49 "equal-empty": \(
Chris@27 50 vec.equal (vec.vector []) (vec.vector [])
Chris@27 51 ),
Chris@27 52
Chris@27 53 "equal": \(
Chris@27 54 v = vec.vector [1,1,1,1];
Chris@27 55 w = vec.ones 4;
Chris@27 56 w' = vec.zeros 4;
Chris@27 57 w'' = vec.ones 3;
Chris@27 58 vec.equal v w and not vec.equal v w' and not vec.equal v w'';
Chris@27 59 ),
Chris@27 60
Chris@27 61 "copyOf-empty": \(
Chris@27 62 vec.equal (vec.vector []) (vec.copyOf (vec.vector []))
Chris@27 63 ),
Chris@27 64
Chris@27 65 "copyOf": \(
Chris@27 66 v = vec.vector [1,2,3,4];
Chris@27 67 w = vec.copyOf v;
Chris@27 68 vec.equal v w and (
Chris@27 69 v[0] := 0; // check result is not aliasing inputs
Chris@27 70 not vec.equal v w
Chris@27 71 );
Chris@27 72 ),
Chris@27 73
Chris@27 74 "rangeOf": \(
Chris@27 75 v = vec.vector [1,2,3,4];
Chris@27 76 vec.equal (vec.rangeOf v 0 4) v and (
Chris@27 77 vec.equal (vec.rangeOf v 2 2) (vec.vector [3,4])
Chris@27 78 )
Chris@27 79 ),
Chris@27 80
Chris@27 81 "resizedTo": \(
Chris@27 82 vec.equal (vec.resizedTo 4 (vec.vector [])) (vec.zeros 4) and
Chris@27 83 vec.equal (vec.resizedTo 2 (vec.vector [1,2])) (vec.vector [1,2]) and
Chris@27 84 vec.equal (vec.resizedTo 3 (vec.vector [1,2])) (vec.vector [1,2,0]) and
Chris@27 85 vec.equal (vec.resizedTo 2 (vec.vector [1,2,3])) (vec.vector [1,2]);
Chris@27 86 ),
Chris@27 87
Chris@27 88 "concat": \(
Chris@27 89 v = vec.vector [1,2,3];
Chris@27 90 w = vec.vector [4,5,6];
Chris@27 91 x = vec.concat v w;
Chris@27 92 x' = vec.vector [1,2,3,4,5,6];
Chris@27 93 vec.equal x x' and
Chris@27 94 (v[0] := 0; // check result is not aliasing inputs
Chris@27 95 w[0] := 0;
Chris@27 96 vec.equal x x') and
Chris@27 97 vec.equal x' (vec.concat x' (vec.vector [])) and
Chris@27 98 vec.equal x' (vec.concat (vec.vector []) x')
Chris@27 99 ),
Chris@27 100
Chris@28 101 ];
Chris@27 102
Chris@28 103