Mercurial > hg > may
changeset 33:e20d3c23a243
Basic block maths functions, tests for same; simplify tests slightly
author | Chris Cannam |
---|---|
date | Fri, 21 Dec 2012 15:36:42 +0000 |
parents | 025c88d62f7a |
children | d36c679577a1 |
files | blockfuncs.yeti test/all.yeti test/test.yeti test/test_blockfuncs.yeti test/test_framer.yeti test/test_fvector.yeti |
diffstat | 6 files changed, 86 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/blockfuncs.yeti Fri Dec 21 15:36:42 2012 +0000 @@ -0,0 +1,33 @@ + +module blockfuncs; + +b = load block; + +sum' = + sum . b.list; + +mean bl = + case b.length bl of + 0: 0; + len: sum' bl / len + esac; + +sqr = + b.fromList . (map do x: x*x done) . b.list; + +sqrt' = + b.fromList . (map sqrt) . b.list; + +rms = + sqrt . mean . sqr; + +{ +sum = sum', +mean, +sqr, +sqrt = sqrt', +rms +} + + +
--- a/test/all.yeti Fri Dec 21 13:32:03 2012 +0000 +++ b/test/all.yeti Fri Dec 21 15:36:42 2012 +0000 @@ -4,8 +4,10 @@ test = load test.test; fr = load test.test_framer; vec = load test.test_fvector; +bf = load test.test_blockfuncs; test.runTests "fvector" vec.tests; test.runTests "framer" fr.tests; +test.runTests "blockfuncs" bf.tests;
--- a/test/test.yeti Fri Dec 21 13:32:03 2012 +0000 +++ b/test/test.yeti Fri Dec 21 15:36:42 2012 +0000 @@ -32,7 +32,10 @@ println "\(group): Failed tests [\(length failed)]: \(strJoin ' ' failed)"; fi); +declare tests is hash<string, () -> boolean> -> 'a = + { tests }; + { - testStream, compare, failedTests, runTests + testStream, compare, failedTests, runTests, declare }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/test_blockfuncs.yeti Fri Dec 21 15:36:42 2012 +0000 @@ -0,0 +1,45 @@ + +module test.test_blockfuncs; + +stdSqrt = sqrt; + +{ zeros, ones, fromList, list } = load block; +{ sum, mean, sqr, sqrt, rms } = load blockfuncs; +{ declare, compare } = load test.test; + +declare [ + +"sum": \( + compare ((sum . zeros) 0) 0 and + compare ((sum . zeros) 5) 0 and + compare ((sum . ones) 5) 5 and + compare ((sum . fromList) [1,-2,3,0]) 2 +), + +"mean": \( + compare ((mean . zeros) 0) 0 and + compare ((mean . zeros) 5) 0 and + compare ((mean . ones) 5) 1 and + compare ((mean . fromList) [1,-2,3,0]) 0.5 +), + +"sqr": \( + compare ((list . sqr . zeros) 0) [] and + compare ((list . sqr . ones) 5) [1,1,1,1,1] and + compare ((list . sqr . fromList) [0.5,-2,3,0]) [0.25,4,9,0] +), + +"sqrt": \( + compare ((list . sqrt . zeros) 0) [] and + compare ((list . sqrt . ones) 5) [1,1,1,1,1] and + compare ((list . sqrt . fromList) [0.25,4,9,0]) [0.5,2,3,0] +), + +"rms": \( + compare ((rms . zeros) 0) 0 and + compare ((rms . ones) 5) 1 and + compare ((rms . fromList) [-1,2,2]) (stdSqrt 3) +), + +]; +
--- a/test/test_framer.yeti Fri Dec 21 13:32:03 2012 +0000 +++ b/test/test_framer.yeti Fri Dec 21 15:36:42 2012 +0000 @@ -5,7 +5,7 @@ block = load block; test = load test.test; -tests = [ +test.declare [ "framecount-2x2": \( fr = fr.frames { framesize = 2, hop = 2 } (test.testStream 2); @@ -89,6 +89,5 @@ ]; -{ tests is hash<string, () -> boolean> };
--- a/test/test_fvector.yeti Fri Dec 21 13:32:03 2012 +0000 +++ b/test/test_fvector.yeti Fri Dec 21 15:36:42 2012 +0000 @@ -4,7 +4,7 @@ vec = load fvector; t = load test.test; -tests = [ +t.declare [ "zeros-empty": \( v = vec.zeros 0; @@ -100,5 +100,4 @@ ]; -{ tests is hash<string, () -> boolean> };