#!/bin/bash

# Run test cases using the media files and the js8 cli decoder

JS8=~/js8call-prefix/build/js8
JS8_ALT=/opt/js8call/bin/js8

PWD=$(pwd)

declare -i pass=0
declare -i fail=0

for f in *.wav 
do
    MODE=$(echo $f | cut -f 1 -d '_')
    DEPTH=$(echo $f | cut -f 2 -d '_')
    EXPECTED=$(echo $f | cut -f 3 -d '_' | cut -f 1 -d '.')

    OUT=$($JS8 -8 -b $MODE -d $DEPTH $PWD/$f | tail -n 1 | awk '{print $(NF)}' | sed -E 's/\s//g')

    if [ "$JS8_ALT" != "" ]; then
        OUT_ALT=$($JS8_ALT -8 -b $MODE -d $DEPTH $PWD/$f | tail -n 1 | awk '{print $(NF)}' | sed -E 's/\s//g')
    fi

    echo -n $f...
    if [ "$OUT" == "$EXPECTED" ]; then
        echo PASS.
        pass=$((pass+1))
    else
        echo FAIL got $OUT expected $EXPECTED;
        fail=$((fail+1))
    fi

    if [ "$JS8_ALT" != "" ]; then
        if [ "$OUT" != "$OUT_ALT" ]; then
            echo "--> js8 alt got $OUT_ALT expected $EXPECTED"
        fi
    fi

    echo
done

echo ---
echo
echo $((pass+fail)) total tests run
echo $pass passed
echo $fail failed

rm timer.out jt9_wisdom.dat
