You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

68 lines
2.1 KiB

/*
* Ltl2dstarFormulaAdapterTest.cpp
*
* Created on: 01.06.2013
* Author: thomas
*/
#include "gtest/gtest.h"
#include "src/formula/Ltl.h"
#include "src/adapters/Ltl2dstarFormulaAdapter.h"
#include "src/parser/LtlParser.h"
TEST(Ltl2dstarFormulaAdapterTest, ConvertAndFormulaTest) {
storm::parser::LtlParser parser ("a & b");
storm::models::AtomicPropositionsLabeling labeling(1, 2);
labeling.addAtomicProposition("a");
labeling.addAtomicProposition("b");
LTLFormula ltlFormula = storm::adapters::Ltl2dstarFormulaAdapter<double>::convert(*parser.getFormula(), labeling);
ASSERT_EQ(ltlFormula.toStringInfix(), "(a) && (b)");
delete parser.getFormula();
}
TEST(Ltl2dstarFormulaAdapterTest, ConvertUntilFormulaTest) {
storm::parser::LtlParser parser ("a U b");
storm::models::AtomicPropositionsLabeling labeling(1, 2);
labeling.addAtomicProposition("a");
labeling.addAtomicProposition("b");
LTLFormula ltlFormula = storm::adapters::Ltl2dstarFormulaAdapter<double>::convert(*parser.getFormula(), labeling);
ASSERT_EQ(ltlFormula.toStringInfix(), "(a) U (b)");
delete parser.getFormula();
}
TEST(Ltl2dstarFormulaAdapterTest, ConvertNextEventuallyFormulaTest) {
storm::parser::LtlParser parser ("(F a) & X b");
storm::models::AtomicPropositionsLabeling labeling(1, 2);
labeling.addAtomicProposition("a");
labeling.addAtomicProposition("b");
LTLFormula ltlFormula = storm::adapters::Ltl2dstarFormulaAdapter<double>::convert(*parser.getFormula(), labeling);
ASSERT_EQ(ltlFormula.toStringInfix(), "(<> (a)) && (X (b))");
delete parser.getFormula();
}
TEST(Ltl2dstarFormulaAdapterTest, ConvertBoundedEventuallyFormulaTest) {
storm::parser::LtlParser parser ("F <= 3 a");
storm::models::AtomicPropositionsLabeling labeling(1, 2);
labeling.addAtomicProposition("a");
labeling.addAtomicProposition("b");
LTLFormula ltlFormula = storm::adapters::Ltl2dstarFormulaAdapter<double>::convert(*parser.getFormula(), labeling);
//Bounded eventually is "unrolled", as Ltl2dstar does not support bounded operators
ASSERT_EQ(ltlFormula.toStringInfix(), "(a) || (X ((a) || (X ((a) || (X (a))))))");
delete parser.getFormula();
}