Mercurial > hg > sonic-annotator
diff tests/test-transforms-basic/test-transforms-basic.sh @ 122:eb0f3a2029b8
Merge from test-reorg branch
author | Chris Cannam |
---|---|
date | Wed, 08 Oct 2014 15:38:48 +0100 |
parents | 5200446bbc6b |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-transforms-basic/test-transforms-basic.sh Wed Oct 08 15:38:48 2014 +0100 @@ -0,0 +1,83 @@ +#!/bin/bash + +. ../include.sh + +infile=$audiopath/3clicks8.wav +tmpfile1=$mypath/tmp_1_$$ +tmpfile2=$mypath/tmp_2_$$ + +trap "rm -f $tmpfile1 $tmpfile2" 0 + +$r --skeleton $percplug > $tmpfile1 2>/dev/null || \ + fail "Fails to run with --skeleton $percplug" + +$r -t $tmpfile1 -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \ + fail "Fails to run with -t $tmpfile1 -w csv --csv-stdout $infile" + +csvcompare $tmpfile2 $mypath/expected/skeleton-1.csv || \ + faildiff "Output mismatch for skeleton-1.csv" $tmpfile2 $mypath/expected/skeleton-1.csv + +for suffix in \ + -no-parameters-default-output \ + -no-parameters \ + "" \ + -start-and-duration \ + -set-parameters \ + -set-step-and-block-size \ + -set-sample-rate \ + -df-windowtype-default \ + -df-windowtype-hanning \ + -df-windowtype-hamming \ + -df-start-and-duration \ + -multiple-outputs \ + -multiple-outputs-start-and-duration \ + ; do + + for type in xml n3 ; do + + transform=$mypath/transforms/percussiononsets$suffix.$type + expected=$mypath/expected/percussiononsets$suffix.csv + + if [ ! -f $transform ]; then + if [ $type = "xml" ]; then + continue # not everything can be expressed in the XML + # format, e.g. the multiple output test can't + fi + fi + + test -f $transform || \ + fail "Internal error: no transforms file for suffix $suffix (looking for $transform)" + + test -f $expected || \ + fail "Internal error: no expected output file for suffix $suffix (looking for $expected)" + + $r -t $transform -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \ + fail "Fails to run transform $transform" + + csvcompare $tmpfile2 $expected || \ + faildiff "Output mismatch for transform $transform" $tmpfile2 $expected + done +done + +# Check we can't run with multiple transforms if one or more is missing! + +$r -t $mypath/transforms/percussiononsets-set-step-and-block-size.n3 \ + -t $mypath/transforms/squiggly.n3 \ + -t $mypath/transforms/percussiononsets-start-and-duration.n3 \ + -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null && \ + fail "Incorrectly seems to succeed in running with a missing transform file" + + +# Check we can run with multiple transforms if they're all present + +$r -t $mypath/transforms/percussiononsets-set-step-and-block-size.n3 \ + -t $mypath/transforms/percussiononsets-set-parameters.xml \ + -t $mypath/transforms/percussiononsets-start-and-duration.n3 \ + -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \ + fail "Fails to run with multiple transforms" + +csvcompare $tmpfile2 $mypath/expected/multiple.csv || \ + faildiff "Output mismatch for multiple transforms" $tmpfile2 $mypath/expected/multiple.csv + +exit 0 +