#!/bin/bash

# exit on error
set -e

# create the output directory
export EOS_BASE_DIRECTORY=$(mktemp -d)

echo using PYTHON=${PYTHON} >&2
echo using PYTHONPATH=${PYTHONPATH} >&2

##############################
## Markov Chain Monte Carlo ##
##############################
echo running MCMC tests ... >&2
for i in $(seq 0 4) ; do
    $PYTHON ${SOURCE_DIR}/eos-analysis \
        sample-mcmc CKM+FF $i \
        -N 500 \
        -f ${SOURCE_DIR}/eos-analysis_TEST.d/analysis.yaml
done
echo ... success >&2

################
## Clustering ##
################
echo running clustering tests ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis \
    find-clusters \
    $EOS_BASE_DIRECTORY/CKM+FF/cluster \
    $EOS_BASE_DIRECTORY/CKM+FF/mcmc-000*
echo ... success >&2

############################
## Population Monte Carlo ##
############################
echo running PMC tests ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis \
    sample-pmc \
    CKM+FF \
    $EOS_BASE_DIRECTORY/CKM+FF/cluster \
    -n 1000 \
    -f ${SOURCE_DIR}/eos-analysis_TEST.d/analysis.yaml
echo ... success >&2

###########################
## Plotting MCMC samples ##
###########################
if [[ "Linux" == $(uname) ]] ; then
echo running MCMC plotting tests ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis \
    plot-samples \
    $EOS_BASE_DIRECTORY/CKM+FF/mcmc-0000
echo ... success >&2
else
echo skipping MCMC plotting tests >&2
fi

##########################
## Plotting PMC samples ##
##########################
if [[ "Linux" == $(uname) ]] ; then
echo running PMC plotting tests ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis \
    plot-samples \
    $EOS_BASE_DIRECTORY/CKM+FF/pmc
echo ... success >&2
else
echo skipping MCMC plotting tests >&2
fi

#########################################
## Posterior prediction of observables ##
#########################################
echo running prediction tests ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis \
    predict-observables \
    PDF \
    $EOS_BASE_DIRECTORY/CKM+FF/pmc \
    -f ${SOURCE_DIR}/eos-analysis_TEST.d/analysis.yaml
echo ... success >&2

####################
## Listing things ##
####################
echo running test for list-priors command ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis list-priors \
    -f ${SOURCE_DIR}/eos-analysis_TEST.d/analysis.yaml
echo ... success >&2
echo running test for list-likelihoods command ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis list-likelihoods \
    -f ${SOURCE_DIR}/eos-analysis_TEST.d/analysis.yaml
echo ... success >&2
echo running test for list-posteriors command ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis list-posteriors \
    -f ${SOURCE_DIR}/eos-analysis_TEST.d/analysis.yaml
echo ... success >&2
echo running test for list-predictions command ... >&2
$PYTHON ${SOURCE_DIR}/eos-analysis list-predictions \
    -f ${SOURCE_DIR}/eos-analysis_TEST.d/analysis.yaml
echo ... success >&2

