def test_reductions(): assert str(compute(sum(t['amount']), s, post_compute=False)) == \ str(sa.sql.functions.sum(s.c.amount)) assert str(compute(mean(t['amount']), s, post_compute=False)) == \ str(sa.sql.func.avg(s.c.amount)) assert str(compute(count(t['amount']), s, post_compute=False)) == \ str(sa.sql.func.count(s.c.amount)) assert 'amount_sum' == compute(sum(t['amount']), s, post_compute=False).name
def test_lean_by_with_summary(): assert lean_projection(by(t.x, total=t.y.sum()))._child.isidentical(t[["x", "y"]]) tt = t[["x", "y"]] result = lean_projection(by(t.x, a=t.y.sum(), b=t.z.sum())[["x", "a"]]) expected = Projection(By(Field(tt, "x"), summary(a=sum(Field(tt, "y")))), ("x", "a")) assert result.isidentical(expected)
def test_by(): t = TableSymbol("t", "{name: string, amount: int32, id: int32}") r = by(t["name"], total=sum(t["amount"])) print(r.schema) assert isinstance(r.schema[0], Record) assert str(r.schema[0]["name"]) == "string"
def test_by(): t = TableSymbol('t', '{name: string, amount: int32, id: int32}') r = by(t['name'], sum(t['amount'])) print(r.schema) assert isinstance(r.schema[0], Record) assert str(r.schema[0]['name']) == 'string'
def test_by(): t = symbol('t', 'var * {name: string, amount: int32, id: int32}') r = by(t['name'], total=sum(t['amount'])) print(r.schema) assert isinstance(r.schema[0], Record) assert str(r.schema[0]['name']) == 'string'
def test_sum(): (chunk, chunk_expr), (agg, agg_expr) = split(t, t.amount.sum()) assert chunk.schema == t.schema assert chunk_expr.isidentical(chunk.amount.sum(keepdims=True)) assert isscalar(agg.dshape.measure) assert agg_expr.isidentical(sum(agg))
def test_by_two(): result = compute(by(tbig[['name', 'sex']], total=sum(tbig['amount'])), dfbig) expected = DataFrame( [['Alice', 'F', 200], ['Drew', 'F', 100], ['Drew', 'M', 300]], columns=['name', 'sex', 'total']) tm.assert_frame_equal(result, expected)
def test_by_two(): result = compute(by(tbig[['name', 'sex']], sum(tbig['amount'])), dfbig) expected = DataFrame([['Alice', 'F', 200], ['Drew', 'F', 100], ['Drew', 'M', 300]], columns=['name', 'sex', 'amount_sum']) assert str(result) == str(expected)
def test_reductions(): assert compute(sum(t['amount']), data) == 100 + 200 + 50 assert compute(min(t['amount']), data) == 50 assert compute(max(t['amount']), data) == 200 assert compute(nunique(t['amount']), data) == 3 assert compute(nunique(t['name']), data) == 2 assert compute(count(t['amount']), data) == 3 assert compute(any(t['amount'] > 150), data) is True assert compute(any(t['amount'] > 250), data) is False
def test_by_two(): result = compute(by(tbig[['name', 'sex']], total=sum(tbig['amount'])), dfbig) expected = DataFrame([['Alice', 'F', 200], ['Drew', 'F', 100], ['Drew', 'M', 300]], columns=['name', 'sex', 'total']) assert str(result) == str(expected)
def test_reductions(): assert compute(mean(t['amount']), ddf) == 350 / 3 assert compute(count(t['amount']), ddf) == 3 assert compute(sum(t['amount']), ddf) == 100 + 200 + 50 assert compute(min(t['amount']), ddf) == 50 assert compute(max(t['amount']), ddf) == 200 assert compute(var(t['amount']), ddf) == df.amount.var(ddof=0) assert compute(var(t['amount'], unbiased=True), ddf) == df.amount.var() assert compute(std(t['amount']), ddf) == df.amount.std(ddof=0) assert compute(std(t['amount'], unbiased=True), ddf) == df.amount.std()
def test_reductions(): assert compute(mean(t['amount']), ddf) == 350 / 3.0 assert compute(count(t['amount']), ddf) == 3 assert compute(sum(t['amount']), ddf) == 100 + 200 + 50 assert compute(min(t['amount']), ddf) == 50 assert compute(max(t['amount']), ddf) == 200 tm.assert_almost_equal(compute(var(t['amount']), ddf), df.amount.var(ddof=0)) tm.assert_almost_equal(compute(var(t['amount'], unbiased=True), ddf), df.amount.var()) assert compute(std(t['amount']), ddf) == df.amount.std(ddof=0) assert compute(std(t['amount'], unbiased=True), ddf) == df.amount.std()
def test_lean_by_with_summary(): assert lean_projection(by(t.x, total=t.y.sum()))._child.isidentical( t[['x', 'y']], ) tt = t[['x', 'y']] result = lean_projection(by(t.x, a=t.y.sum(), b=t.z.sum())[['x', 'a']]) expected = Projection( By(Field(tt, 'x'), summary(a=sum(Field(tt, 'y')))), ('x', 'a'), ) assert result.isidentical(expected)
def test_reductions(): assert compute(mean(t['amount']), df) == 350./3 assert compute(count(t['amount']), df) == 3 assert compute(sum(t['amount']), df) == 100 + 200 + 50 assert compute(min(t['amount']), df) == 50 assert compute(max(t['amount']), df) == 200 assert compute(nunique(t['amount']), df) == 3 assert compute(nunique(t['name']), df) == 2 assert compute(any(t['amount'] > 150), df) == True assert compute(any(t['amount'] > 250), df) == False assert compute(var(t['amount']), df) == df.amount.var(ddof=0) assert compute(var(t['amount'], unbiased=True), df) == df.amount.var() assert compute(std(t['amount']), df) == df.amount.std(ddof=0) assert compute(std(t['amount'], unbiased=True), df) == df.amount.std()
def test_reduction(): t = TableSymbol("t", "{name: string, amount: int32}") r = sum(t["amount"]) assert r.dshape in (dshape("int64"), dshape("{amount: int64}"), dshape("{amount_sum: int64}")) assert "amount" not in str(t.count().dshape) assert t.count().dshape[0] in (int32, int64) assert "int" in str(t.count().dshape) assert "int" in str(t.nunique().dshape) assert "string" in str(t["name"].max().dshape) assert "string" in str(t["name"].min().dshape) assert "string" not in str(t.count().dshape) t = TableSymbol("t", "{name: string, amount: real, id: int}") assert "int" in str(t["id"].sum().dshape) assert "int" not in str(t["amount"].sum().dshape)
def test_reduction(): t = TableSymbol('t', '{name: string, amount: int32}') r = sum(t['amount']) assert r.dshape in (dshape('int64'), dshape('{amount: int64}'), dshape('{amount_sum: int64}')) assert 'amount' not in str(t.count().dshape) assert t.count().dshape[0] in (int32, int64) assert 'int' in str(t.count().dshape) assert 'int' in str(t.nunique().dshape) assert 'string' in str(t['name'].max().dshape) assert 'string' in str(t['name'].min().dshape) assert 'string' not in str(t.count().dshape) t = TableSymbol('t', '{name: string, amount: real, id: int}') assert 'int' in str(t['id'].sum().dshape) assert 'int' not in str(t['amount'].sum().dshape)
def test_reduction(): t = symbol('t', 'var * {name: string, amount: int32}') r = sum(t['amount']) assert r.dshape in (dshape('int64'), dshape('{amount: int64}'), dshape('{amount_sum: int64}')) assert 'amount' not in str(t.count().dshape) assert t.count().dshape[0] in (int32, int64) assert 'int' in str(t.count().dshape) assert 'int' in str(t.nunique().dshape) assert 'string' in str(t['name'].max().dshape) assert 'string' in str(t['name'].min().dshape) assert 'string' not in str(t.count().dshape) t = symbol('t', 'var * {name: string, amount: real, id: int}') assert 'int' in str(t['id'].sum().dshape) assert 'int' not in str(t['amount'].sum().dshape)
def test_reduction(): t = TableSymbol('t', '{name: string, amount: int32}') r = sum(t['amount']) print(type(r.dshape)) print(type(dshape('int32'))) print(r.dshape) assert r.dshape in (dshape('int32'), dshape('{amount: int32}'), dshape('{amount_sum: int32}')) assert 'amount' not in str(t.count().dshape) assert first(t.count().dshape[0].types)[0] in (int32, int64) assert 'int' in str(t.count().dshape) assert 'int' in str(t.nunique().dshape) assert 'string' in str(t['name'].max().dshape) assert 'string' in str(t['name'].min().dshape) assert 'string' not in str(t.count().dshape) t = TableSymbol('t', '{name: string, amount: real, id: int}') assert 'int' in str(t['id'].sum().dshape) assert 'int' not in str(t['amount'].sum().dshape)
def test_by_summary(): t = TableSymbol('t', '{name: string, amount: int32, id: int32}') a = by(t['name'], sum=sum(t['amount'])) b = by(t['name'], summary(sum=sum(t['amount']))) assert a.isidentical(b)
def test_by_summary(): t = TableSymbol("t", "{name: string, amount: int32, id: int32}") a = by(t["name"], sum=sum(t["amount"])) b = by(t["name"], summary(sum=sum(t["amount"]))) assert a.isidentical(b)
def test_by_summary_printing(): t = symbol("t", "var * {name: string, amount: int32, id: int32}") assert str(by(t.name, total=sum(t.amount))) == "by(t.name, total=sum(t.amount))"
def test_by_summary_printing(): t = symbol('t', 'var * {name: string, amount: int32, id: int32}') assert (str(by(t.name, total=sum(t.amount))) == 'by(t.name, total=sum(t.amount))')
def test_by_summary(): t = symbol('t', 'var * {name: string, amount: int32, id: int32}') a = by(t['name'], sum=sum(t['amount'])) b = by(t['name'], summary(sum=sum(t['amount']))) assert a.isidentical(b)