mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 03:23:29 +01:00
63 lines
1.4 KiB
Bash
63 lines
1.4 KiB
Bash
|
#!/usr/bin/env bats
|
|||
|
|
|||
|
# floating point number comparison
|
|||
|
# Compare two numbers ($1, $2) with a given precision ($3)
|
|||
|
# If the numbers are not equal, the exit code is 1 else it is 0
|
|||
|
# So we strip the "-", is the abs value of the poor
|
|||
|
function eq() {
|
|||
|
declare -a diff
|
|||
|
diff=($(awk -v d1=$1 -v d2=$2 -v n1=${1#-} -v n2=${2#-} -v p=$3 'BEGIN{ if ((n1-n2)^2 < p^2) print 0; print 1 " " (d1-d2) " " d1 " " d2 }'))
|
|||
|
if [[ "${diff[0]}" == "0" ]]
|
|||
|
then
|
|||
|
return 0
|
|||
|
else
|
|||
|
echo "#~-~-~-~-~- Test Failed -~-~-~-~-~-#"
|
|||
|
echo "Test : " ${BATS_TEST_DESCRIPTION}
|
|||
|
echo "Error : " ${diff[1]}
|
|||
|
echo "Reference : " ${diff[3]}
|
|||
|
echo "Computed : " ${diff[2]}
|
|||
|
echo "#~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-#"
|
|||
|
exit 1
|
|||
|
fi
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
# ___
|
|||
|
# | ._ o _|_
|
|||
|
# _|_ | | | |_
|
|||
|
#
|
|||
|
source ${QP_EZFIO}/Bash/ezfio.sh
|
|||
|
TEST_DIR=${QP_ROOT}/tests/work/
|
|||
|
|
|||
|
mkdir -p "${TEST_DIR}"
|
|||
|
|
|||
|
cd "${TEST_DIR}" || exit 1
|
|||
|
|
|||
|
function test_exe() {
|
|||
|
l_EXE=$(awk "/^$1 / { print \$2 }" < "${QP_ROOT}"/data/executables)
|
|||
|
l_EXE=$(echo $l_EXE | sed "s|\$QP_ROOT|$QP_ROOT|")
|
|||
|
if [[ -x "$l_EXE" ]]
|
|||
|
then
|
|||
|
return 0
|
|||
|
else
|
|||
|
return 127
|
|||
|
fi
|
|||
|
}
|
|||
|
|
|||
|
run_only_test() {
|
|||
|
if [[ "$BATS_TEST_DESCRIPTION" != "$1" ]] && [[ "$BATS_TEST_NUMBER" != "$1" ]]; then
|
|||
|
if [[ -z $BATS_TEST_FILENAME ]] ; then
|
|||
|
exit 0
|
|||
|
else
|
|||
|
skip
|
|||
|
fi
|
|||
|
fi
|
|||
|
sleep 3
|
|||
|
}
|
|||
|
|
|||
|
setup() {
|
|||
|
if [[ -n $TEST ]] ; then
|
|||
|
run_only_test $TEST || exit 0
|
|||
|
fi
|
|||
|
}
|