annotate tests/test-transforms-basic/test-transforms-basic.sh @ 399:a3912193ce69 tip

Default branch is now named default on git as well as hg, in case we ever want to switch to mirroring in the other direction
author Chris Cannam
date Thu, 27 Aug 2020 15:57:37 +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