test pstl parsing and param setting
This commit is contained in:
parent
42efc69556
commit
673ede60e3
2 changed files with 39 additions and 0 deletions
|
|
@ -9,12 +9,21 @@ ex1 = ('x1 > 2', stl.LinEq(
|
|||
">",
|
||||
2.0
|
||||
))
|
||||
ex1_ = ('x1 > a?', stl.LinEq(
|
||||
(stl.Var(1, Symbol("x1"), stl.ast.t_sym),),
|
||||
">",
|
||||
Symbol("a?")
|
||||
))
|
||||
|
||||
i1 = stl.Interval(0., 1.)
|
||||
i1_ = stl.Interval(0., Symbol("b?"))
|
||||
i2 = stl.Interval(2., 3.)
|
||||
ex2 = ('◇[0,1](x1 > 2)', stl.F(i1, ex1[1]))
|
||||
ex3 = ('□[2,3]◇[0,1](x1 > 2)', stl.G(i2, ex2[1]))
|
||||
ex4 = ('(x1 > 2) or ((x1 > 2) or (x1 > 2))',
|
||||
stl.Or((ex1[1], ex1[1], ex1[1])))
|
||||
ex5 = ('G[0, b?](x1 > a?)',
|
||||
stl.G(i1_, ex1_))
|
||||
|
||||
class TestSTLParser(unittest.TestCase):
|
||||
@params(ex1, ex2, ex3, ex4)
|
||||
|
|
|
|||
30
test_utils.py
Normal file
30
test_utils.py
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
import stl
|
||||
import stl.utils
|
||||
import pandas as pd
|
||||
from nose2.tools import params
|
||||
import unittest
|
||||
from sympy import Symbol
|
||||
|
||||
ex1 = ("F[b?, 1]G[0, c?](x > a?)", {"a?", "b?", "c?"})
|
||||
ex2 = ("G[0, c?](x > a?)", {"a?", "c?"})
|
||||
ex3 = ("F[b?, 1]G[0, c?](x > a?)", {"a?", "b?", "c?"})
|
||||
|
||||
ex4 = ("F[b?, 1]G[0, c?](x > a?)", "F[2, 1]G[0, 3](x > 1)")
|
||||
ex5 = ("G[0, c?](x > a?)", "G[0, 3](x > 1)")
|
||||
|
||||
val = {"a?": 1.0, "b?": 2.0, "c?": 3.0}
|
||||
|
||||
class TestSTLUtils(unittest.TestCase):
|
||||
@params(ex1, ex2, ex3)
|
||||
def test_param_lens(self, phi_str, params):
|
||||
phi = stl.parse(phi_str)
|
||||
self.assertEqual(set(map(str, stl.utils.param_lens(phi).get_all())), params)
|
||||
|
||||
@params(ex4, ex5)
|
||||
def test_set_params(self, phi_str, phi2_str):
|
||||
phi = stl.parse(phi_str)
|
||||
phi2 = stl.parse(phi2_str)
|
||||
phi = stl.utils.set_params(phi, val)
|
||||
|
||||
self.assertEqual(set(map(str, stl.utils.param_lens(phi).get_all())), set())
|
||||
self.assertEqual(phi, phi2)
|
||||
Loading…
Add table
Add a link
Reference in a new issue