#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Laboratoire de
# Recherche et Développement de l'EPITA (LRDE)
#
# This file is part of Spot, a model checking library.
#
# Spot is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# Spot is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
# License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.

gen=../../src/bin/genltl
LTL2TGBA=../../src/tgbatest/ltl2tgba

echo "# Benching ltl2tgba_fm..."
echo "# the following values are also saved to file 'results.fm'"
echo "# time1 = translation time"
echo "# time2 = exploration time"
echo "# n, states, transitions, user time1, system time1, wall time1, user time1, system time2, wall time2"
for n in 1 2 3 4 5 6 7 8 9 10 11 12 13; do
  $LTL2TGBA -T -ks -f "`$gen --rv-counter-linear $n`" >out 2>&1
  states=`sed -n 's/^states: \([0-9]*\)$/\1/p' out`
  transitions=`sed -n 's/^transitions: \([0-9]*\)$/\1/p' out`
  time=`sed -n 's/ *translating formula *| *\([0-9]*\) .*| *\([0-9]*\) .*| *\([0-9]*\) .*|.*/\1,\2,\3/p' out`
  time2=`sed -n 's/ *producing output *| *\([0-9]*\) .*| *\([0-9]*\) .*| *\([0-9]*\) .*|.*/\1,\2,\3/p' out`
  echo $n,$states,$transitions,$time,$time2
done | tee results.fm

echo "# Benching ltl2taa..."
echo "# the following values are also saved to file 'results.taa'"
echo "# time1 = translation time"
echo "# time2 = exploration time"
echo "# n, states, transitions, user time1, system time1, wall time1, user time1, system time2, wall time2"
for n in 1 2 3 4 5 6 7; do
  $LTL2TGBA -T -ks -taa "`$gen --rv-counter-linear $n`" >out 2>&1
  states=`sed -n 's/^states: \([0-9]*\)$/\1/p' out`
  transitions=`sed -n 's/^transitions: \([0-9]*\)$/\1/p' out`
  time=`sed -n 's/ *translating formula *| *\([0-9]*\) .*| *\([0-9]*\) .*| *\([0-9]*\) .*|.*/\1,\2,\3/p' out`
  time2=`sed -n 's/ *producing output *| *\([0-9]*\) .*| *\([0-9]*\) .*| *\([0-9]*\) .*|.*/\1,\2,\3/p' out`
  echo $n,$states,$transitions,$time,$time2
done | tee results.taa

echo "# now run 'gnuplot plot.gnu'"
