def test_bootstrap(self): # Check specific cases a = [1, 2, 3, 4] assert_array_close(bootstrap(a, 1), [2]) assert_array_close(bootstrap(a, 5), [2, 1.75, 2.5, 1.5, 1.75]) assert_array_close( bootstrap(a, 10), [2, 2.5, 2.25, 1.5, 3.25, 3.25, 2, 3.25, 1.75, 1.75]) a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]] assert_array_close( bootstrap(a, 5), [[2., 1.75, 2.5, 1.5, 1.75], [6., 5.75, 6.5, 5.5, 5.75], [10., 9.75, 10.5, 9.5, 9.75]]) assert_array_close( bootstrap(a, 5, axis=1), [[2., 1.75, 2.5, 1.5, 1.75], [6., 5.75, 6.5, 5.5, 5.75], [10., 9.75, 10.5, 9.5, 9.75]]) assert_array_close( bootstrap(a, 5, axis=0), [[1., 2., 3., 4.], [6.33333333, 7.33333333, 8.33333333, 9.33333333], [3.66666667, 4.66666667, 5.66666667, 6.66666667], [1., 2., 3., 4.], [5., 6., 7., 8.]]) a = [1, 2, 3, 4] assert_array_close( bootstrap(a, 5, statistic=numpy.std), [1.22474487, 1.29903811, 0.5, 0.8660254, 1.29903811])
def test_bin_(self): n_tests = 100 for _ in xrange(n_tests): x = acpy.random.random(dims=(1, 3), size=(1, 10)) axis = acpy.random.randint(0, x.ndim) binsize = acpy.random.randint(1, x.shape[axis] + 1) binned = bin_(x, binsize, axis=axis) # Check length of binned axis is correct assert binned.shape[axis] == x.shape[axis] // binsize # Check mean along binned axis is the same assert_array_close( numpy.mean(numpy.take( x, range(0, x.shape[axis] - (x.shape[axis] % binsize)), axis=axis ), axis=axis), numpy.mean(binned, axis=axis) ) # Check specific cases x = [1, 2, 3, 4, 5] assert len(x) == 5 assert_array_close(bin_(x, 1), [1, 2, 3, 4, 5]) assert_array_close(bin_(x, 1, axis=0), [1, 2, 3, 4, 5]) assert_array_close(bin_(x, 1, axis=-1), [1, 2, 3, 4, 5]) assert_array_close(bin_(x, 2), [1.5, 3.5]) assert_array_close(bin_(x, 3), [2]) assert_array_close(bin_(x, 4), [2.5]) assert_array_close(bin_(x, 5), [3]) x = [[1, 2, 3], [4, 5, 6]] assert_array_close(bin_(x, 2), [[1.5], [4.5]]) assert_array_close(bin_(x, 2, axis=1), [[1.5], [4.5]]) assert_array_close(bin_(x, 2, axis=-1), [[1.5], [4.5]]) assert_array_close(bin_(x, 2, axis=0), [[2.5, 3.5, 4.5]])
def assert_array_close_tuple(t1, t2): for a, b in zip(t1, t2): assert_array_close(a, b)