def test_cov_random(numpy, seed): numpy.random.seed(seed) arr1 = numpy.random.rand(100) arr2 = numpy.random.rand(100) np_cov = numpy.cov(arr1, arr2)[0, 1] DT = dt.Frame([arr1, arr2]) dt_cov = DT[:, cov(f[0], f[1])][0, 0] assert numpy.isclose(np_cov, dt_cov, atol=1e-12, rtol=1e-12)
def test_cov_bygroup(): DT = dt.Frame(ID=[1, 2, 1, 2, 1, 2], A=[0, 5, 10, 20, 2, 8]) D1 = DT[:, cov(f.A, f.A), by(f.ID)] assert_equals(D1, dt.Frame(ID=[1, 2], C0=[28.0, 63.0]))
def test_cov_float32(): DT = dt.Frame(A=[1.0, 2.0, 3.0], B=[7.5, 7.0, 6.5], stype=dt.float32) assert DT.stype == dt.float32 D1 = DT[:, cov(f.A, f.B)] assert_equals(D1, dt.Frame([-0.5], stype=dt.float32))
def test_cov_subframe(): DT = dt.Frame(A=range(100)) D1 = DT[37:40, cov(f.A, f.A)] assert D1[0, 0] == 1.0
def test_cov_small_frame(): D1 = dt.Frame(A=[1], B=[2])[:, cov(f.A, f.B)] D2 = dt.Frame(A=[], B=[])[:, cov(f.A, f.B)] assert_equals(D1, dt.Frame([None], stype=dt.float64)) assert_equals(D2, dt.Frame([None], stype=dt.float64))
def test_cov_simple(): DT = dt.Frame(A=range(5), B=range(5)) D1 = DT[:, cov(f.A, f.B)] assert_equals(D1, dt.Frame([2.5]))