#! /bin/bash
#------------------------------------------------------------------------------
#$Author: saulius $
#$Date: 2021-05-04 05:14:08 +0000 (Tue, 04 May 2021) $
#$Revision: 8937 $
#$URL: file:///home/saulius/svn-repositories/paskaitos/VU/software/assignment-evaluation/trunk/scripts/do-check--test-directories $
#------------------------------------------------------------------------------
#*
# Check test file directories.
#**

set -ue
## set -x

DIRECTORY="$1"

OUTP_DIRS="out output outputs išvestys"
TEST_DIRS="cases atvejai test tests testai"

ID='$Id: do-check--test-directories 8937 2021-05-04 05:14:08Z saulius $'

cd "${DIRECTORY}"

OUTPUT_DIR=""

for DIR in ${OUTP_DIRS}
do
    OUTPUT_DIR=$(find -type d -name "${DIR}")
    if [ -n "${OUTPUT_DIR}" ]
    then
        break
    fi
done

if [ "${OUTPUT_DIR}" = "" ]
then
cat <<EOF
-- [AUTO;TESTS;$(echo $ID | sed 's/\$//g')]
   Jūsų projektas turi turėti vieną šių direktorijų testų etaloninėms išvestims:
   ${OUTP_DIRS}
   (-10 balų);

EOF
fi

TEST_DIR=""

for DIR in ${TEST_DIRS}
do
    TEST_DIR=$(find -type d -name "${DIR}")
    if [ -n "${TEST_DIR}" ]
    then
        break
    fi
done

if [ "${TEST_DIR}" = "" ]
then
cat <<EOF
-- [AUTO;TESTS;$(echo $ID | sed 's/\$//g')]
   Jūsų projektas turi turėti vieną šių direktorijų testų atvejams talpinti:
   ${TEST_DIRS}
   (-10 balų);

EOF
else
    if [ "$(echo ${TEST_DIR}/*)" == "${TEST_DIR}/*" ] || \
       [ $(find ${TEST_DIR} -mindepth 1 -maxdepth 1 | wc -l) -lt 3 ]
    then
cat <<EOF
-- [AUTO;TESTS;$(echo $ID | sed 's/\$//g')]
   Jūsų projektas turi turėti bent 3 testus (-10 balų);

EOF
    fi
fi

if [ -n "${TEST_DIR}" -a -n "${OUTPUT_DIR}" ]
then
    if [ "$(echo ${TEST_DIR}/*)" == "${TEST_DIR}/*" -o \
         "$(echo ${OUTPUT_DIR}/*)" == "${OUTPUT_DIR}/*" ] || \
       [ $(find ${TEST_DIR} -mindepth 1 -maxdepth 1 | wc -l) -gt \
         $(find ${OUTPUT_DIR} -mindepth 1 -maxdepth 1 | wc -l) ]
    then
cat <<EOF
-- [AUTO;TESTS;$(echo $ID | sed 's/\$//g')]
   Pateikite etaloninį rezultatą kiekvienam testui (-10 balų);

EOF
    fi
fi
