def test_start_tag_close_interleave(): p1 = Interleave( Element( Name({'ns': ''}, 'bar'), EMPTY), TEXT) p2 = EMPTY schema = After( p1, p2) deriv = after(start_tag_close_deriv(p1), p2) assert str(start_tag_close_deriv(schema)) == str(deriv) schema = p1 p11 = Element( Name({'ns': ''}, 'bar'), EMPTY) p12 = TEXT deriv = interleave(start_tag_close_deriv(p11), start_tag_close_deriv(p12)) assert str(start_tag_close_deriv(schema)) == str(deriv) schema = p11 deriv = schema assert str(start_tag_close_deriv(schema)) == str(deriv) schema = p12 deriv = schema assert str(start_tag_close_deriv(schema)) == str(deriv) schema = p2 deriv = schema assert str(start_tag_close_deriv(schema)) == str(deriv) schema = After( Interleave( Element( Name({'ns': ''}, 'bar'), EMPTY), TEXT), EMPTY) deriv = schema assert str(start_tag_close_deriv(schema)) == str(deriv)
def test_children_deriv_interleave(): schema = After( Interleave( Element( Name({'ns': ''}, 'bar'), EMPTY), TEXT), EMPTY) doc = tuple() deriv = children_deriv(schema, ('',)) assert str(children_deriv(schema, doc)) == str(deriv) x = child_deriv(schema, '') print("x is", x) deriv = choice(schema, x) if whitespace('') else x assert str(children_deriv(schema, '')) == str(deriv) deriv = text_deriv(schema, '') assert str(child_deriv(schema, '')) == str(deriv) p1 = Interleave( Element( Name({'ns': ''}, 'bar'), EMPTY), TEXT) p2 = EMPTY deriv = After(text_deriv(p1, ''), p2) assert str(text_deriv(schema, '')) == str(deriv) p11 = Element( Name({'ns': ''}, 'bar'), EMPTY) p12 = TEXT deriv = choice( interleave(text_deriv(p11, ''), p12), interleave(p11, text_deriv(p12, ''))) assert str(text_deriv(p1, '')) == str(deriv) deriv = NotAllowed() assert str(text_deriv(p11, '')) == str(deriv) deriv = NotAllowed() assert str(interleave(NotAllowed(), p12)) == str(deriv) deriv = TEXT assert str(text_deriv(p12, '')) == str(deriv) assert whitespace('') is True schema = After( Interleave( Element( Name({'ns': ''}, 'bar'), EMPTY), TEXT), EMPTY) deriv = Choice( After( Interleave( Element( Name({'ns': ''}, 'bar'), EMPTY), TEXT), EMPTY), After( Interleave( Element( Name({'ns': ''}, 'bar'), EMPTY), TEXT), EMPTY)) print('is', children_deriv(schema, doc)) print('should be', deriv) assert str(children_deriv(schema, doc)) == str(deriv)