def test_merge_construction(): s = stream("1") evt = event(V.foo == 1) >> event(V.bar == 2) span1 = span(s(evt), within=delta(days=1)) span2 = span(s(evt), within=delta(days=2)) assume(merge(span1, span2))
def test_simple_spans(query): s1 = stream("1") s2 = stream("2") sp1 = span(s1.foo == query, s2.foo == query) sp2 = span(s1.foo == query, s2.foo == query, within=delta(days=2)) assume(type(sp1) is Span) assume(type(sp2) is Span)
def test_span_unwrapping(): sp1 = span(event(V.foo == 0, V.bar == 1)) sp2 = span(sp1) sp3 = span(sp2) # FIXME: this throws a FlareSyntaxError, which means there is a bug # assert str(sp2) == str(sp1) assert len(sp2.query) == len(sp1.query) assert len(sp3.query) == len(sp1.query)
def test_overloaded_ops(query): s1 = stream("1") s2 = stream("2") span1 = span(s2.foo == query) span2 = span(s1.foo == query) assume(type(span1) == Span and type(span2) == Span) assume(type(span1 & span2) == Span) assume(type(span1 | span2) == Or) assume(type(span1 >>span2) == Serial)
def test_serial_construction(query1, query2): s1 = stream("1") s2 = stream("2") evt1 = event(V.foo == query1) evt2 = event(V.foo == query2) srl = span(s1(evt1)) \ .then(s2(evt2), within=delta(days=5)) assume(type(srl) is Serial)
def assert_parsable(query): assert (type(query) == Cond) assert (type(ast(span(query))) == str)
def assume_parsable(query): assume(type(query) == Cond) assume(type(ast(span(query))) == str)