annotate tests/test-transforms-basic/test-transforms-basic.sh @ 168:3e30dbb68ca2 jams

Write time or start/end based simply on whether the feature has them or not, let's not get clever
author Chris Cannam
date Wed, 15 Oct 2014 15:20:16 +0100
parents 5200446bbc6b
children
rev   line source
Chris@0 1 #!/bin/bash
Chris@0 2
Chris@119 3 . ../include.sh
Chris@0 4
Chris@119 5 infile=$audiopath/3clicks8.wav
Chris@0 6 tmpfile1=$mypath/tmp_1_$$
Chris@0 7 tmpfile2=$mypath/tmp_2_$$
Chris@0 8
Chris@0 9 trap "rm -f $tmpfile1 $tmpfile2" 0
Chris@0 10
Chris@118 11 $r --skeleton $percplug > $tmpfile1 2>/dev/null || \
Chris@118 12 fail "Fails to run with --skeleton $percplug"
Chris@0 13
Chris@0 14 $r -t $tmpfile1 -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \
Chris@119 15 fail "Fails to run with -t $tmpfile1 -w csv --csv-stdout $infile"
Chris@0 16
Chris@119 17 csvcompare $tmpfile2 $mypath/expected/skeleton-1.csv || \
Chris@119 18 faildiff "Output mismatch for skeleton-1.csv" $tmpfile2 $mypath/expected/skeleton-1.csv
Chris@0 19
Chris@0 20 for suffix in \
Chris@0 21 -no-parameters-default-output \
Chris@0 22 -no-parameters \
Chris@0 23 "" \
Chris@96 24 -start-and-duration \
Chris@0 25 -set-parameters \
Chris@0 26 -set-step-and-block-size \
Chris@0 27 -set-sample-rate \
Chris@51 28 -df-windowtype-default \
Chris@51 29 -df-windowtype-hanning \
Chris@51 30 -df-windowtype-hamming \
Chris@96 31 -df-start-and-duration \
Chris@55 32 -multiple-outputs \
Chris@99 33 -multiple-outputs-start-and-duration \
Chris@0 34 ; do
Chris@0 35
Chris@0 36 for type in xml n3 ; do
Chris@0 37
Chris@119 38 transform=$mypath/transforms/percussiononsets$suffix.$type
Chris@119 39 expected=$mypath/expected/percussiononsets$suffix.csv
Chris@0 40
Chris@55 41 if [ ! -f $transform ]; then
Chris@55 42 if [ $type = "xml" ]; then
Chris@55 43 continue # not everything can be expressed in the XML
Chris@55 44 # format, e.g. the multiple output test can't
Chris@55 45 fi
Chris@55 46 fi
Chris@55 47
Chris@0 48 test -f $transform || \
Chris@51 49 fail "Internal error: no transforms file for suffix $suffix (looking for $transform)"
Chris@0 50
Chris@0 51 test -f $expected || \
Chris@51 52 fail "Internal error: no expected output file for suffix $suffix (looking for $expected)"
Chris@0 53
Chris@0 54 $r -t $transform -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \
Chris@0 55 fail "Fails to run transform $transform"
Chris@0 56
Chris@28 57 csvcompare $tmpfile2 $expected || \
Chris@108 58 faildiff "Output mismatch for transform $transform" $tmpfile2 $expected
Chris@0 59 done
Chris@0 60 done
Chris@0 61
Chris@121 62 # Check we can't run with multiple transforms if one or more is missing!
Chris@121 63
Chris@121 64 $r -t $mypath/transforms/percussiononsets-set-step-and-block-size.n3 \
Chris@121 65 -t $mypath/transforms/squiggly.n3 \
Chris@121 66 -t $mypath/transforms/percussiononsets-start-and-duration.n3 \
Chris@121 67 -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null && \
Chris@121 68 fail "Incorrectly seems to succeed in running with a missing transform file"
Chris@121 69
Chris@121 70
Chris@121 71 # Check we can run with multiple transforms if they're all present
Chris@121 72
Chris@121 73 $r -t $mypath/transforms/percussiononsets-set-step-and-block-size.n3 \
Chris@121 74 -t $mypath/transforms/percussiononsets-set-parameters.xml \
Chris@121 75 -t $mypath/transforms/percussiononsets-start-and-duration.n3 \
Chris@121 76 -w csv --csv-stdout $infile > $tmpfile2 2>/dev/null || \
Chris@121 77 fail "Fails to run with multiple transforms"
Chris@121 78
Chris@121 79 csvcompare $tmpfile2 $mypath/expected/multiple.csv || \
Chris@121 80 faildiff "Output mismatch for multiple transforms" $tmpfile2 $mypath/expected/multiple.csv
Chris@121 81
Chris@0 82 exit 0
Chris@0 83