Fix until output not valued at signal start
This commit is contained in:
parent
0195ab295d
commit
2cff512933
2 changed files with 16 additions and 0 deletions
|
|
@ -33,6 +33,11 @@ def interp(sig, t, tag=None):
|
|||
return sig[key][tag]
|
||||
|
||||
|
||||
def interp_all(sig, t, end=OO):
|
||||
v = fn.map(lambda u: signal([(t, interp(sig, t, u))], t, end, u), sig.tags)
|
||||
return reduce(op.__or__, v)
|
||||
|
||||
|
||||
def dense_compose(sig1, sig2, init=None):
|
||||
sig12 = sig1 | sig2
|
||||
tags = sig12.tags
|
||||
|
|
@ -110,6 +115,7 @@ def eval_mtl_until(phi, dt):
|
|||
|
||||
def _eval(x):
|
||||
sig = dense_compose(f1(x), f2(x), init=-OO)
|
||||
sig = sig | interp_all(sig, x.start, OO) # Force valuation at start
|
||||
data = apply_weak_until(phi.arg1, phi.arg2, sig)
|
||||
return signal(data, x.start, OO, tag=phi)
|
||||
|
||||
|
|
|
|||
|
|
@ -20,3 +20,13 @@ def test_eval_regression_next_neg():
|
|||
v = f(d, quantitative=False, dt=1, time=None)
|
||||
assert not f(d, quantitative=False, dt=1)
|
||||
assert min(t for t, _ in v) >= 0
|
||||
|
||||
|
||||
def test_eval_regression_until_start():
|
||||
"""From issue #221"""
|
||||
x = {
|
||||
"ap1": [(0, True), (0.1, True), (0.2, False)],
|
||||
}
|
||||
|
||||
phi = (mtl.parse("(X TRUE W X TRUE)"))
|
||||
phi(x, 0, quantitative=False)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue