def test_merge_options(): s = symbol('s', 'var * {a: ?A, b: ?B}') merged = merge(a=s.a, b=s.b) assert_dshape_equal(merged.dshape, dshape('var * {a: ?A, b: ?B}')) assert_dshape_equal(merged.a.dshape, dshape('var * ?A')) assert_dshape_equal(merged.b.dshape, dshape('var * ?B'))
def test_merge_on_single_argument_is_noop(): assert merge(t.name).isidentical(t.name)
def test_merge(): e = symbol('e', '3 * 5 * {name: string, amount: int, x: real}') expr = merge(name=e.name, y=e.x) assert set(expr.fields) == set(['name', 'y']) assert expr.y.isidentical(e.x.label('y'))
def test_merge_exceptions(): t = symbol('t', 'var * {x:int}') with pytest.raises(ValueError) as excinfo: merge(t, x=2*t.x) assert "Repeated columns" in str(excinfo.value)
def test_merge_exceptions(): t = symbol('t', 'var * {x:int}') with pytest.raises(ValueError) as excinfo: merge(t, x=2 * t.x) assert "Repeated columns" in str(excinfo.value)