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]
|
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):
|
def dense_compose(sig1, sig2, init=None):
|
||||||
sig12 = sig1 | sig2
|
sig12 = sig1 | sig2
|
||||||
tags = sig12.tags
|
tags = sig12.tags
|
||||||
|
|
@ -110,6 +115,7 @@ def eval_mtl_until(phi, dt):
|
||||||
|
|
||||||
def _eval(x):
|
def _eval(x):
|
||||||
sig = dense_compose(f1(x), f2(x), init=-OO)
|
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)
|
data = apply_weak_until(phi.arg1, phi.arg2, sig)
|
||||||
return signal(data, x.start, OO, tag=phi)
|
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)
|
v = f(d, quantitative=False, dt=1, time=None)
|
||||||
assert not f(d, quantitative=False, dt=1)
|
assert not f(d, quantitative=False, dt=1)
|
||||||
assert min(t for t, _ in v) >= 0
|
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