def test_rise(self): var_node = Variable('req', '', 'output') node = Rise(var_node) pastifier = STLPastifier() node.accept(pastifier) new_node = pastifier.pastify(node) self.assertEqual('rise(req)', new_node.name, 'Rise pastification assertion')
def test_complex_past_2(self): var_node_1 = Variable('req', '', 'output') var_node_2 = Variable('gnt', '', 'output') rise_node = Rise(var_node_1) hist_node = Historically(var_node_2) once_node = TimedOnce(hist_node, 1, 2) add_node = TimedSince(rise_node, once_node, 2, 6) add_node.horizon = 0 pastifier = STLPastifier() add_node.accept(pastifier) new_node = pastifier.pastify(add_node) self.assertEqual('(rise(req))since[2,6](once[1,2](historically(gnt)))', new_node.name, 'Complex pastification assertion')
def test_complex_bounded_future_1(self): var_node_1 = Variable('req', '', 'output') var_node_2 = Variable('gnt', '', 'output') cnt_node_1 = Constant(3) cnt_node_2 = Constant(3) pd_node_1 = Predicate(var_node_1, cnt_node_1, StlComparisonOperator.GEQ) pd_node_2 = Predicate(var_node_2, cnt_node_2, StlComparisonOperator.GEQ) rise_node = Rise(pd_node_1) hist_node = TimedAlways(pd_node_2, 3, 4) once_node = TimedEventually(hist_node, 1, 2) add_node = Implies(rise_node, once_node) add_node.horizon = 6 pastifier = STLPastifier() add_node.accept(pastifier) new_node = pastifier.pastify(add_node) self.assertEqual('(rise((once[6,6](req))>=(3)))->(once[0,1](historically[0,1]((gnt)>=(3))))', new_node.name, 'Complex pastification assertion')
def visitExprRise(self, ctx): child = self.visit(ctx.expression()) node = Rise(child) node.horizon = child.horizon return node
def visitRise(self, element, args): child_node = self.visit(element.children[0], args) node = Rise(child_node) return node