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 # /bin/bash
RESULT=results/measure.txt TIMEOUT=20m
TIMEOUT=15m
touch ${RESULT}
echo "Measurement $(date)" >> ${RESULT}
echo "" >> ${RESULT}
for FILE in results/*.ltl for FILE in results/*.ltl
do do
NAME=$(basename ${FILE} .ltl) NAME=$(basename ${FILE} .ltl)
METRICS="results/${NAME}.metrics"
echo "Measuring ${FILE}" echo "Measuring ${FILE}"
echo "${FILE}:" >> ${RESULT} echo "Metrics File: ${METRICS}"
echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT} echo "" >> ${METRICS}
echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT} echo "Measuring on $(date):" >> ${METRICS}
# echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT}
# echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT}
if 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 then
echo "Finished successfully" echo "Finished successfully"
echo " Finished successfully" >> ${RESULT} echo "Finished successfully" >> ${METRICS}
else else
echo "Timeout after ${TIMEOUT}" echo "Timeout after ${TIMEOUT}"
echo " Timeout after ${TIMEOUT}" >> ${RESULT} echo "Timeout after ${TIMEOUT}" >> ${METRICS}
fi fi
echo "" >> ${RESULT}
done done
# /bin/bash # /bin/bash
RESULT=results/measure.txt TIMEOUT=1s
TIMEOUT=10s
touch ${RESULT}
echo "Measurement $(date)" >> ${RESULT}
echo "" >> ${RESULT}
for FILE in results/*.ltl for FILE in results/*.ltl
do do
NAME=$(basename ${FILE} .ltl) NAME=$(basename ${FILE} .ltl)
METRICS="results/${NAME}.metrics"
echo "Measuring ${FILE}" echo "Measuring ${FILE}"
echo "${FILE}:" >> ${RESULT} echo "Metrics File: ${METRICS}"
echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT} echo "" >> ${METRICS}
echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT} echo "Measuring on $(date):" >> ${METRICS}
# echo " FOLTL length: $(wc -m < results/${NAME}.foltl)" >> ${RESULT}
# echo " LTL length: $(wc -m < ${FILE})" >> ${RESULT}
if 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 then
echo "Finished successfully" echo "Finished successfully"
echo " Finished successfully" >> ${RESULT} echo "Finished successfully" >> ${METRICS}
else else
echo "Timeout after ${TIMEOUT}" echo "Timeout after ${TIMEOUT}"
echo " Timeout after ${TIMEOUT}" >> ${RESULT} echo "Timeout after ${TIMEOUT}" >> ${METRICS}
fi fi
echo "" >> ${RESULT}
done done
...@@ -34,8 +34,11 @@ object Main extends App with LazyLogging { ...@@ -34,8 +34,11 @@ object Main extends App with LazyLogging {
} }
def writeExample(name: String, prop: Term) { def writeExample(name: String, prop: Term) {
var metrics = List[String]()
write(s"${name}.foltl", prop.pretty()) write(s"${name}.foltl", prop.pretty())
metrics :+= s"${name}.foltl: ${prop.opsize()}"
if (!TermFunctions.checkSanity(prop)) { if (!TermFunctions.checkSanity(prop)) {
logger.error("Property didn't pass sanity check") logger.error("Property didn't pass sanity check")
...@@ -44,7 +47,8 @@ object Main extends App with LazyLogging { ...@@ -44,7 +47,8 @@ object Main extends App with LazyLogging {
val (agents, res) = LTL.eliminateExistentials(prop) 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)) { if (agents.groupBy(_.typ).exists(_._2.size > MAXAGENTS)) {
logger.error(s"Universe has more than $MAXAGENTS agents for a single type. Aborting.") logger.error(s"Universe has more than $MAXAGENTS agents for a single type. Aborting.")
...@@ -53,10 +57,15 @@ object Main extends App with LazyLogging { ...@@ -53,10 +57,15 @@ object Main extends App with LazyLogging {
val quantfree = LTL.eliminateUniversals(res, agents) val quantfree = LTL.eliminateUniversals(res, agents)
val ltlprop = LTL.eliminatePredicates(quantfree) val ltlprop = LTL.eliminatePredicates(quantfree)
metrics :+= s"${name}.ltl: ${ltlprop.opsize()}"
metrics :+= s"Universe: $universe"
write(s"${name}.ltl", ltlprop.toString()) write(s"${name}.ltl", ltlprop.toString())
write(s"${name}.ppltl", ltlprop.pretty()) write(s"${name}.ppltl", ltlprop.pretty())
write(s"${name}.metrics", metrics.mkString("", "\n", "\n"))
logger.info(s"Written all files for $name") logger.info(s"Written all files for $name")
} }
...@@ -74,6 +83,7 @@ object Main extends App with LazyLogging { ...@@ -74,6 +83,7 @@ object Main extends App with LazyLogging {
val cprop = Properties.noninterCausal(spec) val cprop = Properties.noninterCausal(spec)
writeExample(s"$FOLDER/${name}_causal", cprop) writeExample(s"$FOLDER/${name}_causal", cprop)
} }
} }
// Clear results folder // Clear results folder
......
Supports Markdown
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