Commit 3c6a3ab1 authored by Christian Müller's avatar Christian Müller
Browse files

rename examples, add metrics file per case

parent 86f84f77
# /bin/bash
RESULT=results/measure.txt
TIMEOUT=15m
touch ${RESULT}
echo "Measurement $(date)" >> ${RESULT}
echo "" >> ${RESULT}
TIMEOUT=20m
for FILE in results/*.ltl
do
NAME=$(basename ${FILE} .ltl)
METRICS="results/${NAME}.metrics"
echo "Measuring ${FILE}"
echo "${FILE}:" >> ${RESULT}
echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT}
echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT}
echo "Metrics File: ${METRICS}"
echo "" >> ${METRICS}
echo "Measuring on $(date):" >> ${METRICS}
# echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT}
# echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT}
if
timeout ${TIMEOUT} time -p aalta/Aalta_v2.0/aalta < ${FILE} >> ${RESULT} 2>&1
timeout ${TIMEOUT} time -p aalta/Aalta_v2.0/aalta < ${FILE} >> ${METRICS} 2>&1
then
echo "Finished successfully"
echo " Finished successfully" >> ${RESULT}
echo "Finished successfully" >> ${METRICS}
else
echo "Timeout after ${TIMEOUT}"
echo " Timeout after ${TIMEOUT}" >> ${RESULT}
echo "Timeout after ${TIMEOUT}" >> ${METRICS}
fi
echo "" >> ${RESULT}
done
# /bin/bash
RESULT=results/measure.txt
TIMEOUT=10s
touch ${RESULT}
echo "Measurement $(date)" >> ${RESULT}
echo "" >> ${RESULT}
TIMEOUT=1s
for FILE in results/*.ltl
do
NAME=$(basename ${FILE} .ltl)
METRICS="results/${NAME}.metrics"
echo "Measuring ${FILE}"
echo "${FILE}:" >> ${RESULT}
echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT}
echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT}
echo "Metrics File: ${METRICS}"
echo "" >> ${METRICS}
echo "Measuring on $(date):" >> ${METRICS}
# echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT}
# echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT}
if
timeout ${TIMEOUT} time -p aalta/Aalta_v2.0/aalta < ${FILE} >> ${RESULT} 2>&1
timeout ${TIMEOUT} time -p aalta/Aalta_v2.0/aalta < ${FILE} >> ${METRICS} 2>&1
then
echo "Finished successfully"
echo " Finished successfully" >> ${RESULT}
echo "Finished successfully" >> ${METRICS}
else
echo "Timeout after ${TIMEOUT}"
echo " Timeout after ${TIMEOUT}" >> ${RESULT}
echo "Timeout after ${TIMEOUT}" >> ${METRICS}
fi
echo "" >> ${RESULT}
done
......@@ -34,8 +34,11 @@ object Main extends App with LazyLogging {
}
def writeExample(name: String, prop: Term) {
var metrics = List[String]()
write(s"${name}.foltl", prop.pretty())
metrics :+= s"${name}.foltl: ${prop.opsize()}"
if (!TermFunctions.checkSanity(prop)) {
logger.error("Property didn't pass sanity check")
......@@ -44,7 +47,8 @@ object Main extends App with LazyLogging {
val (agents, res) = LTL.eliminateExistentials(prop)
logger.info(s"Using universe ${agents.map(_.withType())}")
val universe = agents.map(_.withType()).mkString(", ")
logger.info(s"Using universe $universe")
if (agents.groupBy(_.typ).exists(_._2.size > MAXAGENTS)) {
logger.error(s"Universe has more than $MAXAGENTS agents for a single type. Aborting.")
......@@ -53,10 +57,15 @@ object Main extends App with LazyLogging {
val quantfree = LTL.eliminateUniversals(res, agents)
val ltlprop = LTL.eliminatePredicates(quantfree)
metrics :+= s"${name}.ltl: ${ltlprop.opsize()}"
metrics :+= s"Universe: $universe"
write(s"${name}.ltl", ltlprop.toString())
write(s"${name}.ppltl", ltlprop.pretty())
write(s"${name}.metrics", metrics.mkString("", "\n", "\n"))
logger.info(s"Written all files for $name")
}
......@@ -74,6 +83,7 @@ object Main extends App with LazyLogging {
val cprop = Properties.noninterCausal(spec)
writeExample(s"$FOLDER/${name}_causal", cprop)
}
}
// Clear results folder
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment