#!/bin/bash
set -e

pkg=pycoqc
CUR_DIR=`pwd`

if [ "${AUTOPKGTEST_TMP}" = "" ] ; then
  AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
  trap "rm -rf ${AUTOPKGTEST_TMP}" 0 INT QUIT ABRT PIPE TERM
fi

cp ${CUR_DIR}/docs/Barcode_split/data/* -a "${AUTOPKGTEST_TMP}"
cp ${CUR_DIR}/docs/Fast5_to_seq_summary/data/* -a "${AUTOPKGTEST_TMP}"
cp ${CUR_DIR}/docs/pycoQC/data/* -a "${AUTOPKGTEST_TMP}"

cd "${AUTOPKGTEST_TMP}"
gunzip -r *
rm -rf data
mkdir -p datafast5
mv *.fast5 datafast5
mv summary_sequencing.tsv datafast5

echo 'Test 1'
pycoQC \
    -f Albacore-1.2.1_basecall-1D-DNA_sequencing_summary.txt \
    -o results/Albacore-1.2.1_basecall-1D-DNA.html \
    --quiet
echo 'PASS'
echo

echo 'Test 2'
pycoQC \
    -f Guppy-2.1.3_basecall-1D-RNA_sequencing_summary.txt \
    -o results/Guppy-2.1.3_basecall-1D_RNA.html \
    -j results/Guppy-2.1.3_basecall-1D_RNA.json \
    --quiet
echo 'PASS'
echo

echo 'Test 3'
pycoQC \
    -f Guppy-2.1.3_basecall-1D-DNA_sequencing_summary.txt \
    -b Guppy-2.1.3_basecall-1D_DNA_barcoding_summary.txt \
    -o results/Guppy-2.1.3_basecall-1D_DNA_barcode.html \
    --quiet
echo 'PASS'
echo

echo 'Test 4'
pycoQC \
    -f Albacore*RNA* \
    -o results/Albacore_all_RNA.html \
    --report_title "All RNA runs" \
    --quiet
echo 'PASS'
echo

echo 'Test 5'
pycoQC \
    -f Albacore-2.1.10_basecall-1D-DNA_sequencing_summary.txt\
    -o results/Albacore-2.1.10_basecall-1D-DNA.html \
    --min_pass_qual 8 \
    --min_pass_len 200 \
    --filter_calibration \
    --min_barcode_percent 10 \
    --quiet
echo 'PASS'
echo

echo 'Test 6'
pycoQC --default_config > test6
diff test6 pycoQC_config.json
echo 'PASS'
echo

echo 'Test 7'
pycoQC \
    -f Albacore-1.7.0_basecall-1D-DNA_sequencing_summary.txt\
    -o results/Albacore-1.7.0_basecall-1D-DNA.html \
    --config pycoQC_config.json \
    --quiet
echo 'PASS'
echo

echo 'Test 8'
Fast5_to_seq_summary \
    -f datafast5/ \
    -s results/summary_sequencing.tsv

head results/summary_sequencing.tsv
echo 'PASS'
echo

echo 'Test 9'
Fast5_to_seq_summary \
    -f datafast5/ \
    -s results/custom_summary_sequencing.tsv \
    --verbose_level 1 \
    --fields mean_qscore_template called_events duration strand_score

head results/custom_summary_sequencing.tsv
echo 'PASS'
echo

echo 'Test 10'
Fast5_to_seq_summary \
    -f datafast5/ \
    -s results/fn_summary_sequencing.tsv \
    --verbose_level 1 \
    --include_path

head results/fn_summary_sequencing.tsv
echo 'PASS'
echo

echo 'Test 11'
Barcode_split \
    -f 'Guppy-2.2.4-basecall-1D-DNA_sequencing_summary+barcode.txt' \
    -o "results/"
echo 'PASS'
echo

echo 'Test 12'
Barcode_split \
    -f "Guppy-basecall-1D-DNA_sequencing_summary.txt" \
    -b "Guppy-basecall-1D-DNA_deepbinner_barcoding_summary.txt" \
    -o "results/" \
    -v
echo 'PASS'
echo

echo "Check if files really exist"
for f in results/*
do
	[ -s $f ] || exit 1
done
echo "PASS"
echo

