# HG changeset patch # User Chris Cannam # Date 1356040587 0 # Node ID 0d03455c105be3337064a2757b9e76858375b6c8 # Parent a6b1cc0012323bce9208b911eb646cd4a6de41cd Pull out tests into subdir diff -r a6b1cc001232 -r 0d03455c105b block.yeti --- a/block.yeti Thu Dec 20 15:25:46 2012 +0000 +++ b/block.yeti Thu Dec 20 21:56:27 2012 +0000 @@ -23,12 +23,14 @@ copyOf b = Block (vec.copyOf (unblock b)); -range b start len = - Block (vec.range (unblock b) start len); +rangeOf b start len = + Block (vec.rangeOf (unblock b) start len); resizedTo n b = Block (vec.resizedTo n (unblock b)); + + { zeros, ones, block, unblock, @@ -36,6 +38,6 @@ length = length', list = list', equal, -copyOf, range, resizedTo, +copyOf, rangeOf, resizedTo, } diff -r a6b1cc001232 -r 0d03455c105b fvector.yeti --- a/fvector.yeti Thu Dec 20 15:25:46 2012 +0000 +++ b/fvector.yeti Thu Dec 20 21:56:27 2012 +0000 @@ -33,18 +33,26 @@ copyOf v is ~double[] -> ~double[] = Arrays#copyOf(v, list' v |> length); -range v start len is ~double[] -> number -> number -> ~double[] = +rangeOf v start len is ~double[] -> number -> number -> ~double[] = Arrays#copyOfRange(v, start, start + len); resizedTo n v is number -> ~double[] -> ~double[] = Arrays#copyOf(v, n); +concat v1 v2 is ~double[] -> ~double[] -> ~double[] = + (v1len = length' v1; + v2len = length' v2; + v = resizedTo (v1len + v2len) v1; + for [0..v2len-1] do i: v[v1len + i] := v2[i] done; + v); + { zeros, ones, vector, length = length', list = list', equal, -copyOf, range, resizedTo, +copyOf, rangeOf, resizedTo, +concat } diff -r a6b1cc001232 -r 0d03455c105b syntheticstream.yeti --- a/syntheticstream.yeti Thu Dec 20 15:25:46 2012 +0000 +++ b/syntheticstream.yeti Thu Dec 20 21:56:27 2012 +0000 @@ -35,7 +35,7 @@ rate, read count = (rc = min count (len - position); - result = vec.range data position rc; + result = vec.rangeOf data position rc; position := position + rc; block.block result), close = \(), diff -r a6b1cc001232 -r 0d03455c105b test/test-framer.yeti --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/test-framer.yeti Thu Dec 20 21:56:27 2012 +0000 @@ -0,0 +1,98 @@ + +program test_framer; + +fr = load framer; +block = load block; +test = load test.test; + +tests = [ + +"framecount-2x2": \( + fr = fr.frames 2 (test.testStream 2); + test.compare (length fr) 1 +), + +"framecount-2x3": \( + fr = fr.frames 2 (test.testStream 3); + test.compare (length fr) 2 +), + +"framecount-2x4": \( + fr = fr.frames 2 (test.testStream 4); + test.compare (length fr) 2 +), + +"framecount-2.1x0": \( + fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (test.testStream 0); + test.compare (length fr) 1 +), + +"framecount-2.1x1": \( + fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (test.testStream 1); + test.compare (length fr) 2 +), + +"framecount-2.1x2": \( + fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (test.testStream 2); + test.compare (length fr) 3 +), + +"framecount-2.1x3": \( + fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (test.testStream 3); + test.compare (length fr) 4 +), + +"framecount-4.1x4": \( + fr = fr.overlappingFrames { blocksize = 4, hop = 1 } (test.testStream 4); + test.compare (length fr) 7 +), + +"framecount-4.3x4": \( + fr = fr.overlappingFrames { blocksize = 4, hop = 3 } (test.testStream 4); + test.compare (length fr) 2 +), + +"framecount-4.4x4": \( + fr = fr.overlappingFrames { blocksize = 4, hop = 4 } (test.testStream 4); + test.compare (length fr) 1 +), + +"framecount-3.2x4": \( + fr = fr.overlappingFrames { blocksize = 3, hop = 2 } (test.testStream 4); + test.compare (length fr) 3 +), + +"frames-2x5": \( + fr = fr.frames 2 (test.testStream 5); + expected = array [ [1,2], [3,4], [5,0] ]; + obtained = array (map block.list fr); + test.compare obtained expected; +), + +"frames-4.3x4": \( + fr = fr.overlappingFrames { blocksize = 4, hop = 3 } (test.testStream 4); + expected = array [ [0,1,2,3], [3,4,0,0] ]; + obtained = array (map block.list fr); + test.compare obtained expected; +), + +"frames-3.2x4": \( + fr = fr.overlappingFrames { blocksize = 3, hop = 2 } (test.testStream 4); + expected = array [ [0,1,2], [2,3,4], [4,0,0] ]; + obtained = array (map block.list fr); + test.compare obtained expected; +), + +"frames-3.1x6": \( + fr = fr.overlappingFrames { blocksize = 3, hop = 1 } (test.testStream 6); + expected = array [ [0,0,1], [0,1,2], [1,2,3], [2,3,4], + [3,4,5], [4,5,6], [5,6,0], [6,0,0] ]; + obtained = array (map block.list fr); + test.compare obtained expected; +), + +]; + +test.runTests tests; + +(); diff -r a6b1cc001232 -r 0d03455c105b test/test.yeti --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/test.yeti Thu Dec 20 21:56:27 2012 +0000 @@ -0,0 +1,38 @@ + +module test.test; + +vec = load fvector; +ss = load syntheticstream; + +testStream n is number -> 'a = ss.precalculated 1000 (vec.vector [1..n]); + +compare obtained expected = + if obtained == expected then + true; + else + println "** expected: \(expected)\n obtained: \(obtained)"; + false; + fi; + +select f = fold do r x: if f x then x::r else r fi done []; + +failedTests testHash = + select (!= "") + (mapHash do name f: + if f () then "" else + println "Test \(name) failed"; + name; + fi + done testHash); + +runTests testHash = + (failed = failedTests testHash; + println "\(length testHash - length failed)/\(length testHash) tests passed"; + if not empty? failed then + println "Failed tests [\(length failed)]: \(strJoin ' ' failed)"; + fi); + +{ + testStream, compare, failedTests, runTests +} + diff -r a6b1cc001232 -r 0d03455c105b tests.yeti --- a/tests.yeti Thu Dec 20 15:25:46 2012 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ - -program tests; - -ss = load syntheticstream; -vec = load fvector; -fr = load framer; -block = load block; - -testStream n is number -> 'a = ss.precalculated 1000 (vec.vector [1..n]); - -compare obtained expected = - if obtained == expected then - true; - else - println "** expected: \(expected)\n obtained: \(obtained)"; - false; - fi; - -tests = [ - -"framecount-2x2": \( - fr = fr.frames 2 (testStream 2); - compare (length fr) 1 -), - -"framecount-2x3": \( - fr = fr.frames 2 (testStream 3); - compare (length fr) 2 -), - -"framecount-2x4": \( - fr = fr.frames 2 (testStream 4); - compare (length fr) 2 -), - -"framecount-2.1x0": \( - fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (testStream 0); - compare (length fr) 1 -), - -"framecount-2.1x1": \( - fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (testStream 1); - compare (length fr) 2 -), - -"framecount-2.1x2": \( - fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (testStream 2); - compare (length fr) 3 -), - -"framecount-2.1x3": \( - fr = fr.overlappingFrames { blocksize = 2, hop = 1 } (testStream 3); - compare (length fr) 4 -), - -"framecount-4.1x4": \( - fr = fr.overlappingFrames { blocksize = 4, hop = 1 } (testStream 4); - compare (length fr) 7 -), - -"framecount-4.3x4": \( - fr = fr.overlappingFrames { blocksize = 4, hop = 3 } (testStream 4); - compare (length fr) 2 -), - -"framecount-4.4x4": \( - fr = fr.overlappingFrames { blocksize = 4, hop = 4 } (testStream 4); - compare (length fr) 1 -), - -"framecount-3.2x4": \( - fr = fr.overlappingFrames { blocksize = 3, hop = 2 } (testStream 4); - compare (length fr) 3 -), - -"frames-2x5": \( - fr = fr.frames 2 (testStream 5); - expected = array [ [1,2], [3,4], [5,0] ]; - obtained = array (map block.list fr); - compare obtained expected; -), - -"frames-4.3x4": \( - fr = fr.overlappingFrames { blocksize = 4, hop = 3 } (testStream 4); - expected = array [ [0,1,2,3], [3,4,0,0] ]; - obtained = array (map block.list fr); - compare obtained expected; -), - -"frames-3.2x4": \( - fr = fr.overlappingFrames { blocksize = 3, hop = 2 } (testStream 4); - expected = array [ [0,1,2], [2,3,4], [4,0,0] ]; - obtained = array (map block.list fr); - compare obtained expected; -), - -"frames-3.1x6": \( - fr = fr.overlappingFrames { blocksize = 3, hop = 1 } (testStream 6); - expected = array [ [0,0,1], [0,1,2], [1,2,3], [2,3,4], - [3,4,5], [4,5,6], [5,6,0], [6,0,0] ]; - obtained = array (map block.list fr); - compare obtained expected; -), - -]; - -var bad = 0; - -forHash tests do name f: - if not (f ()) then - println "\(name) failed."; - bad := bad + 1 - fi -done; - -total = length tests; -println "Testing done, \(total - bad)/\(total) OK.";