#!/bin/sh

# usage: general_test <type> <variables_start> <variables_end> <trials>

# (C) Emilia Oikarinen

type=$1
v1=$2
v2=$3
trials=$4

if test -d results
then 
    true
else mkdir results
fi

FILE1=results/lpeq_time.$type-drop.$v1-$v2.$trials
FILE2=results/lpeq_time.drop-$type.$v1-$v2.$trials
FILE3=results/naive_time.$type-drop.$v1-$v2.$trials
FILE4=results/naive_time.drop-$type.$v1-$v2.$trials

# for rsat_varying_ratio
const_variables=40

if test -r $FILE1
then
  true
else
  while test $v1 -le $v2
  do
    case "$type" in
    
         'rsat_varying_ratio')
          
         ratio=`echo "scale=4; $v1/$const_variables" | bc`
         echo -n $ratio" "
         echo -n $ratio" " >>$FILE1
         echo -n $ratio" " >>$FILE2
         echo -n $ratio" " >>$FILE3
         echo -n $ratio" " >>$FILE4
         ;;
        
        *)

         echo -n $v1" "
         echo -n $v1" " >>$FILE1
         echo -n $v1" " >>$FILE2
         echo -n $v1" " >>$FILE3
         echo -n $v1" " >>$FILE4
         ;;

    esac

    ./running_times.sh $type $v1 $trials

    awk 'BEGIN {min=10e10; max=0; sum=0; n=0}; \
    {sum=sum+$2; \
     if($2<min) min=$2; \
     if($2>max) max=$2; \
     n++}; END {print min" "sum/n" "max}' \
                          results/lpeq-times-$type-drop.$v1.$trials >>$FILE1

    awk 'BEGIN {min=10e10; max=0; sum=0; n=0}; \
    {sum=sum+$2; \
     if($2<min) min=$2; \
     if($2>max) max=$2; \
     n++}; END {print min" "sum/n" "max}' \
                          results/lpeq-times-drop-$type.$v1.$trials >>$FILE2

    awk 'BEGIN {min=10e10; max=0; sum=0; n=0}; \
    {sum=sum+$2; \
     if($2<min) min=$2; \
     if($2>max) max=$2; \
     n++}; END {print min" "sum/n" "max}' \
                          results/naive-times-$type-drop.$v1.$trials >>$FILE3

    awk 'BEGIN {min=10e10; max=0; sum=0; n=0}; \
    {sum=sum+$2; \
     if($2<min) min=$2; \
     if($2>max) max=$2; \
     n++}; END {print min" "sum/n" "max}' \
                          results/naive-times-drop-$type.$v1.$trials >>$FILE4


    case "$type" in

         'rsat_varying_ratio')

         v1=`expr $v1 + 5`
         ratio=`echo "scale=4; $v1/$const_variables" | bc`
         ;;

         'rsat_const_ratio')

         v1=`expr $v1 + 5`
         ;;
 
         *)

         v1=`expr $v1 + 1`
         ;;
    esac
         
  done
fi

echo "... done."


