Exemple #1
0
def test_prod_floats():
    random_numbers = np.random.randn(3)
    DT = dt.Frame(A=random_numbers)
    RES = DT[:, prod(f.A)]
    frame_integrity_check(RES)
    assert RES.to_numpy().item() == np.prod(random_numbers)
    assert str(RES)
Exemple #2
0
def test_reduce_prod():
    f0 = dt.Frame({
        "color": ["red", "blue", "green", "red", "green"],
        "size": [5, 2, 7, 13, -1]
    })
    f1 = f0[:, prod(f.size), f.color]
    frame_integrity_check(f1)
    assert f1.to_list() == [["blue", "green", "red"], [2, -7, 65]]
Exemple #3
0
def test_prod_empty_frame():
    DT = dt.Frame([[]] * 4,
                  names=list("ABCD"),
                  stypes=(dt.bool8, dt.int32, dt.float32, dt.float64))
    assert DT.shape == (0, 4)
    RES = DT[:, prod(f[:])]
    frame_integrity_check(RES)
    assert_equals(
        RES,
        dt.Frame(A=[1] / dt.int64,
                 B=[1] / dt.int64,
                 C=[1] / dt.float32,
                 D=[1] / dt.float64))
    assert str(RES)
Exemple #4
0
def test_groupby_multi_prod():
    DT = dt.Frame(A=[1, 2, 3] * 3, B=[1, 2] * 4 + [1], C=range(1, 10))
    res = DT[:, prod(f.C), by("A", "B")]
    assert res.to_list() == [[1, 1, 2, 2, 3, 3], [1, 2, 1, 2, 1, 2],
                             [7, 4, 5, 16, 27, 6]]
Exemple #5
0
def test_prod_bool():
    DT = dt.Frame(A=[True, False, True])
    RES = DT[:, prod(f.A)]
    frame_integrity_check(RES)
    assert RES.to_numpy().item() == np.prod([True, False, True])
    assert str(RES)
Exemple #6
0
def test_prod_simple():
    DT = dt.Frame(A=range(1, 5))
    RES = DT[:, prod(f.A)]
    frame_integrity_check(RES)
    assert RES.to_numpy().item() == np.prod(np.arange(1, 5))
    assert str(RES)
Exemple #7
0
def test_prod():
    assert str(dt.prod(f.A)) == str(f.A.prod())
    assert str(dt.prod(f[:])) == str(f[:].prod())
    DT = dt.Frame(A=range(1, 10))
    assert_equals(DT[:, f.A.prod()], DT[:, dt.prod(f.A)])