annotate tests/test-transforms-basic.sh @ 55:43d788236ed1

Add unit test for multiple outputs in one run
author Chris Cannam
date Fri, 06 Jan 2012 14:53:46 +0000
parents c30b9720bde0
children 34b0c85258d0
rev   line source
Chris@0 1 #!/bin/bash
Chris@0 2
Chris@0 3 mypath=`dirname $0`
Chris@42 4 r=$mypath/../sonic-annotator
Chris@0 5
Chris@0 6 infile=$mypath/audio/3clicks8.wav
Chris@0 7 testplug=vamp:vamp-example-plugins:percussiononsets
Chris@0 8 tmpfile1=$mypath/tmp_1_$$
Chris@0 9 tmpfile2=$mypath/tmp_2_$$
Chris@0 10
Chris@0 11 trap "rm -f $tmpfile1 $tmpfile2" 0
Chris@0 12
Chris@28 13 . test-include.sh
Chris@0 14
Chris@0 15 $r --skeleton $testplug > $tmpfile1 2>/dev/null || \
Chris@0 16 fail "Fails to run with --skeleton $testplug"
Chris@0 17
Chris@0 18 $r -t $tmpfile1 -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \
Chris@0 19 fail "Fails to run with -t $tmpfile -w csv --csv-stdout $infile"
Chris@0 20
Chris@28 21 csvcompare $tmpfile2 $mypath/expected/transforms-basic-skeleton-1.csv || \
Chris@0 22 fail "Output mismatch for transforms-basic-skeleton-1.csv"
Chris@0 23
Chris@0 24 for suffix in \
Chris@0 25 -no-parameters-default-output \
Chris@0 26 -no-parameters \
Chris@0 27 "" \
Chris@0 28 -set-parameters \
Chris@0 29 -set-step-and-block-size \
Chris@0 30 -set-sample-rate \
Chris@51 31 -df-windowtype-default \
Chris@51 32 -df-windowtype-hanning \
Chris@51 33 -df-windowtype-hamming \
Chris@55 34 -multiple-outputs \
Chris@0 35 ; do
Chris@0 36
Chris@0 37 for type in xml n3 ; do
Chris@0 38
Chris@0 39 transform=$mypath/transforms/transforms-basic-percussiononsets$suffix.$type
Chris@0 40 expected=$mypath/expected/transforms-basic-percussiononsets$suffix.csv
Chris@0 41
Chris@55 42 if [ ! -f $transform ]; then
Chris@55 43 if [ $type = "xml" ]; then
Chris@55 44 continue # not everything can be expressed in the XML
Chris@55 45 # format, e.g. the multiple output test can't
Chris@55 46 fi
Chris@55 47 fi
Chris@55 48
Chris@0 49 test -f $transform || \
Chris@51 50 fail "Internal error: no transforms file for suffix $suffix (looking for $transform)"
Chris@0 51
Chris@0 52 test -f $expected || \
Chris@51 53 fail "Internal error: no expected output file for suffix $suffix (looking for $expected)"
Chris@0 54
Chris@0 55 $r -t $transform -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \
Chris@0 56 fail "Fails to run transform $transform"
Chris@0 57
Chris@28 58 csvcompare $tmpfile2 $expected || \
Chris@0 59 fail "Output mismatch for transform $transform"
Chris@0 60 done
Chris@0 61 done
Chris@0 62
Chris@0 63 exit 0
Chris@0 64