#!/usr/bin/env bash

set -e

wai=$(dirname $(readlink -f "$0"))
scenarios="${wai}/../scenarios"
inputs="${wai}/../inputs.json"
simulator="make -C ${wai}/../ run"
parser="${wai}/../parser.awk"
results="${wai}/results.csv"
nseed=20

run-simulation () {
    # Generate inputs
    $scenarios $seed $simtime $wakeupsd $wakeupevery $wakeupfor $n_nodes $extended $hint $poff $pon $prx $ptx $datasize $simkey > "$inputs"
    # Run simulations
    [ -e "$results" ] && { $simulator 2>&1 | $parser | sed 1d >> "$results"; } || { $simulator 2>&1 | $parser > "$results"; }
}

# Default Parameters
seed=0
simtime=7200
wakeupsd=180
wakeupevery=600
wakeupfor=180
n_nodes=5
extended="false"
hint="false"
poff=0
pon=0.4
prx=0.16
ptx=0.16
datasize=1000000
simkey=0

# Baseline
echo "Baseline..."
[ -e "${results}" ] && rm "${results}"
simkey="baseline"
for seed in $(seq 1 $nseed)
do
    run-simulation
done

# Hint
echo "Hint..."
hint="true"
simkey="hint"
for seed in $(seq 1 $nseed)
do
    run-simulation
done
hint="false"

# Extended
echo "Extended..."
extended="true"
simkey="extended"
for seed in $(seq 1 $nseed)
do
    run-simulation
done
extended="false"

# Hint+Extended
echo "Hint + Extended..."
extended="true"
hint="true"
simkey="hintandextended"
for seed in $(seq 1 $nseed)
do
    run-simulation
done
extended="false"
hint="false"