Пример #1
0
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
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
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"
Пример #5
0
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'
Пример #6
0
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'
Пример #7
0
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))
Пример #8
0
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))
Пример #9
0
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)
Пример #10
0
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)
Пример #11
0
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
Пример #12
0
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)
Пример #13
0
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
Пример #14
0
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()
Пример #15
0
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()
Пример #16
0
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)
Пример #17
0
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()
Пример #18
0
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)
Пример #19
0
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)
Пример #20
0
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)
Пример #21
0
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)
Пример #22
0
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)
Пример #23
0
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)
Пример #24
0
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))"
Пример #25
0
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))')
Пример #26
0
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)