Blame numpy/core/tests/test_regression.py

Packit Service a47777
from __future__ import division, absolute_import, print_function
Packit Service a47777
Packit Service a47777
import copy
Packit Service a47777
import pickle
Packit Service a47777
import sys
Packit Service a47777
import platform
Packit Service a47777
import gc
Packit Service a47777
import warnings
Packit Service a47777
import tempfile
Packit Service a47777
from os import path
Packit Service a47777
from io import BytesIO
Packit Service a47777
from itertools import chain
Packit Service a47777
Packit Service a47777
import numpy as np
Packit Service a47777
from numpy.testing import (
Packit Service a47777
        run_module_suite, assert_, assert_equal, IS_PYPY,
Packit Service a47777
        assert_almost_equal, assert_array_equal, assert_array_almost_equal,
Packit Service a47777
        assert_raises, assert_warns, dec, suppress_warnings,
Packit Service a47777
        _assert_valid_refcount, HAS_REFCOUNT,
Packit Service a47777
        )
Packit Service a47777
from numpy.compat import asbytes, asunicode, long
Packit Service a47777
Packit Service a47777
try:
Packit Service a47777
    RecursionError
Packit Service a47777
except NameError:
Packit Service a47777
    RecursionError = RuntimeError  # python < 3.5
Packit Service a47777
Packit Service a47777
class TestRegression(object):
Packit Service a47777
    def test_invalid_round(self):
Packit Service a47777
        # Ticket #3
Packit Service a47777
        v = 4.7599999999999998
Packit Service a47777
        assert_array_equal(np.array([v]), np.array(v))
Packit Service a47777
Packit Service a47777
    def test_mem_empty(self):
Packit Service a47777
        # Ticket #7
Packit Service a47777
        np.empty((1,), dtype=[('x', np.int64)])
Packit Service a47777
Packit Service a47777
    def test_pickle_transposed(self):
Packit Service a47777
        # Ticket #16
Packit Service a47777
        a = np.transpose(np.array([[2, 9], [7, 0], [3, 8]]))
Packit Service a47777
        f = BytesIO()
Packit Service a47777
        pickle.dump(a, f)
Packit Service a47777
        f.seek(0)
Packit Service a47777
        b = pickle.load(f)
Packit Service a47777
        f.close()
Packit Service a47777
        assert_array_equal(a, b)
Packit Service a47777
Packit Service a47777
    def test_typeNA(self):
Packit Service a47777
        # Ticket #31
Packit Service a47777
        assert_equal(np.typeNA[np.int64], 'Int64')
Packit Service a47777
        assert_equal(np.typeNA[np.uint64], 'UInt64')
Packit Service a47777
Packit Service a47777
    def test_dtype_names(self):
Packit Service a47777
        # Ticket #35
Packit Service a47777
        # Should succeed
Packit Service a47777
        np.dtype([(('name', 'label'), np.int32, 3)])
Packit Service a47777
Packit Service a47777
    def test_reduce(self):
Packit Service a47777
        # Ticket #40
Packit Service a47777
        assert_almost_equal(np.add.reduce([1., .5], dtype=None), 1.5)
Packit Service a47777
Packit Service a47777
    def test_zeros_order(self):
Packit Service a47777
        # Ticket #43
Packit Service a47777
        np.zeros([3], int, 'C')
Packit Service a47777
        np.zeros([3], order='C')
Packit Service a47777
        np.zeros([3], int, order='C')
Packit Service a47777
Packit Service a47777
    def test_asarray_with_order(self):
Packit Service a47777
        # Check that nothing is done when order='F' and array C/F-contiguous
Packit Service a47777
        a = np.ones(2)
Packit Service a47777
        assert_(a is np.asarray(a, order='F'))
Packit Service a47777
Packit Service a47777
    def test_ravel_with_order(self):
Packit Service a47777
        # Check that ravel works when order='F' and array C/F-contiguous
Packit Service a47777
        a = np.ones(2)
Packit Service a47777
        assert_(not a.ravel('F').flags.owndata)
Packit Service a47777
Packit Service a47777
    def test_sort_bigendian(self):
Packit Service a47777
        # Ticket #47
Packit Service a47777
        a = np.linspace(0, 10, 11)
Packit Service a47777
        c = a.astype(np.dtype('
Packit Service a47777
        c.sort()
Packit Service a47777
        assert_array_almost_equal(c, a)
Packit Service a47777
Packit Service a47777
    def test_negative_nd_indexing(self):
Packit Service a47777
        # Ticket #49
Packit Service a47777
        c = np.arange(125).reshape((5, 5, 5))
Packit Service a47777
        origidx = np.array([-1, 0, 1])
Packit Service a47777
        idx = np.array(origidx)
Packit Service a47777
        c[idx]
Packit Service a47777
        assert_array_equal(idx, origidx)
Packit Service a47777
Packit Service a47777
    def test_char_dump(self):
Packit Service a47777
        # Ticket #50
Packit Service a47777
        f = BytesIO()
Packit Service a47777
        ca = np.char.array(np.arange(1000, 1010), itemsize=4)
Packit Service a47777
        ca.dump(f)
Packit Service a47777
        f.seek(0)
Packit Service dce907
        ca = np.load(f, allow_pickle=True)
Packit Service a47777
        f.close()
Packit Service a47777
Packit Service a47777
    def test_noncontiguous_fill(self):
Packit Service a47777
        # Ticket #58.
Packit Service a47777
        a = np.zeros((5, 3))
Packit Service a47777
        b = a[:, :2,]
Packit Service a47777
Packit Service a47777
        def rs():
Packit Service a47777
            b.shape = (10,)
Packit Service a47777
Packit Service a47777
        assert_raises(AttributeError, rs)
Packit Service a47777
Packit Service a47777
    def test_bool(self):
Packit Service a47777
        # Ticket #60
Packit Service a47777
        np.bool_(1)  # Should succeed
Packit Service a47777
Packit Service a47777
    def test_indexing1(self):
Packit Service a47777
        # Ticket #64
Packit Service a47777
        descr = [('x', [('y', [('z', 'c16', (2,)),]),]),]
Packit Service a47777
        buffer = ((([6j, 4j],),),)
Packit Service a47777
        h = np.array(buffer, dtype=descr)
Packit Service a47777
        h['x']['y']['z']
Packit Service a47777
Packit Service a47777
    def test_indexing2(self):
Packit Service a47777
        # Ticket #65
Packit Service a47777
        descr = [('x', 'i4', (2,))]
Packit Service a47777
        buffer = ([3, 2],)
Packit Service a47777
        h = np.array(buffer, dtype=descr)
Packit Service a47777
        h['x']
Packit Service a47777
Packit Service a47777
    def test_round(self):
Packit Service a47777
        # Ticket #67
Packit Service a47777
        x = np.array([1+2j])
Packit Service a47777
        assert_almost_equal(x**(-1), [1/(1+2j)])
Packit Service a47777
Packit Service a47777
    def test_scalar_compare(self):
Packit Service a47777
        # Trac Ticket #72
Packit Service a47777
        # https://github.com/numpy/numpy/issues/565
Packit Service a47777
        a = np.array(['test', 'auto'])
Packit Service a47777
        assert_array_equal(a == 'auto', np.array([False, True]))
Packit Service a47777
        assert_(a[1] == 'auto')
Packit Service a47777
        assert_(a[0] != 'auto')
Packit Service a47777
        b = np.linspace(0, 10, 11)
Packit Service a47777
        # This should return true for now, but will eventually raise an error:
Packit Service a47777
        with suppress_warnings() as sup:
Packit Service a47777
            sup.filter(FutureWarning)
Packit Service a47777
            assert_(b != 'auto')
Packit Service a47777
        assert_(b[0] != 'auto')
Packit Service a47777
Packit Service a47777
    def test_unicode_swapping(self):
Packit Service a47777
        # Ticket #79
Packit Service a47777
        ulen = 1
Packit Service a47777
        ucs_value = u'\U0010FFFF'
Packit Service a47777
        ua = np.array([[[ucs_value*ulen]*2]*3]*4, dtype='U%s' % ulen)
Packit Service a47777
        ua.newbyteorder()  # Should succeed.
Packit Service a47777
Packit Service a47777
    def test_object_array_fill(self):
Packit Service a47777
        # Ticket #86
Packit Service a47777
        x = np.zeros(1, 'O')
Packit Service a47777
        x.fill([])
Packit Service a47777
Packit Service a47777
    def test_mem_dtype_align(self):
Packit Service a47777
        # Ticket #93
Packit Service a47777
        assert_raises(TypeError, np.dtype,
Packit Service a47777
                              {'names':['a'], 'formats':['foo']}, align=1)
Packit Service a47777
Packit Service a47777
    def test_endian_bool_indexing(self):
Packit Service a47777
        # Ticket #105
Packit Service a47777
        a = np.arange(10., dtype='>f8')
Packit Service a47777
        b = np.arange(10., dtype='
Packit Service a47777
        xa = np.where((a > 2) & (a < 6))
Packit Service a47777
        xb = np.where((b > 2) & (b < 6))
Packit Service a47777
        ya = ((a > 2) & (a < 6))
Packit Service a47777
        yb = ((b > 2) & (b < 6))
Packit Service a47777
        assert_array_almost_equal(xa, ya.nonzero())
Packit Service a47777
        assert_array_almost_equal(xb, yb.nonzero())
Packit Service a47777
        assert_(np.all(a[ya] > 0.5))
Packit Service a47777
        assert_(np.all(b[yb] > 0.5))
Packit Service a47777
Packit Service a47777
    def test_endian_where(self):
Packit Service a47777
        # GitHub issue #369
Packit Service a47777
        net = np.zeros(3, dtype='>f4')
Packit Service a47777
        net[1] = 0.00458849
Packit Service a47777
        net[2] = 0.605202
Packit Service a47777
        max_net = net.max()
Packit Service a47777
        test = np.where(net <= 0., max_net, net)
Packit Service a47777
        correct = np.array([ 0.60520202,  0.00458849,  0.60520202])
Packit Service a47777
        assert_array_almost_equal(test, correct)
Packit Service a47777
Packit Service a47777
    def test_endian_recarray(self):
Packit Service a47777
        # Ticket #2185
Packit Service a47777
        dt = np.dtype([
Packit Service a47777
               ('head', '>u4'),
Packit Service a47777
               ('data', '>u4', 2),
Packit Service a47777
            ])
Packit Service a47777
        buf = np.recarray(1, dtype=dt)
Packit Service a47777
        buf[0]['head'] = 1
Packit Service a47777
        buf[0]['data'][:] = [1, 1]
Packit Service a47777
Packit Service a47777
        h = buf[0]['head']
Packit Service a47777
        d = buf[0]['data'][0]
Packit Service a47777
        buf[0]['head'] = h
Packit Service a47777
        buf[0]['data'][0] = d
Packit Service a47777
        assert_(buf[0]['head'] == 1)
Packit Service a47777
Packit Service a47777
    def test_mem_dot(self):
Packit Service a47777
        # Ticket #106
Packit Service a47777
        x = np.random.randn(0, 1)
Packit Service a47777
        y = np.random.randn(10, 1)
Packit Service a47777
        # Dummy array to detect bad memory access:
Packit Service a47777
        _z = np.ones(10)
Packit Service a47777
        _dummy = np.empty((0, 10))
Packit Service a47777
        z = np.lib.stride_tricks.as_strided(_z, _dummy.shape, _dummy.strides)
Packit Service a47777
        np.dot(x, np.transpose(y), out=z)
Packit Service a47777
        assert_equal(_z, np.ones(10))
Packit Service a47777
        # Do the same for the built-in dot:
Packit Service a47777
        np.core.multiarray.dot(x, np.transpose(y), out=z)
Packit Service a47777
        assert_equal(_z, np.ones(10))
Packit Service a47777
Packit Service a47777
    def test_arange_endian(self):
Packit Service a47777
        # Ticket #111
Packit Service a47777
        ref = np.arange(10)
Packit Service a47777
        x = np.arange(10, dtype='
Packit Service a47777
        assert_array_equal(ref, x)
Packit Service a47777
        x = np.arange(10, dtype='>f8')
Packit Service a47777
        assert_array_equal(ref, x)
Packit Service a47777
Packit Service a47777
    def test_argmax(self):
Packit Service a47777
        # Ticket #119
Packit Service a47777
        a = np.random.normal(0, 1, (4, 5, 6, 7, 8))
Packit Service a47777
        for i in range(a.ndim):
Packit Service a47777
            a.argmax(i)  # Should succeed
Packit Service a47777
Packit Service a47777
    def test_mem_divmod(self):
Packit Service a47777
        # Ticket #126
Packit Service a47777
        for i in range(10):
Packit Service a47777
            divmod(np.array([i])[0], 10)
Packit Service a47777
Packit Service a47777
    def test_hstack_invalid_dims(self):
Packit Service a47777
        # Ticket #128
Packit Service a47777
        x = np.arange(9).reshape((3, 3))
Packit Service a47777
        y = np.array([0, 0, 0])
Packit Service a47777
        assert_raises(ValueError, np.hstack, (x, y))
Packit Service a47777
Packit Service a47777
    def test_squeeze_type(self):
Packit Service a47777
        # Ticket #133
Packit Service a47777
        a = np.array([3])
Packit Service a47777
        b = np.array(3)
Packit Service a47777
        assert_(type(a.squeeze()) is np.ndarray)
Packit Service a47777
        assert_(type(b.squeeze()) is np.ndarray)
Packit Service a47777
Packit Service a47777
    def test_add_identity(self):
Packit Service a47777
        # Ticket #143
Packit Service a47777
        assert_equal(0, np.add.identity)
Packit Service a47777
Packit Service a47777
    def test_numpy_float_python_long_addition(self):
Packit Service a47777
        # Check that numpy float and python longs can be added correctly.
Packit Service a47777
        a = np.float_(23.) + 2**135
Packit Service a47777
        assert_equal(a, 23. + 2**135)
Packit Service a47777
Packit Service a47777
    def test_binary_repr_0(self):
Packit Service a47777
        # Ticket #151
Packit Service a47777
        assert_equal('0', np.binary_repr(0))
Packit Service a47777
Packit Service a47777
    def test_rec_iterate(self):
Packit Service a47777
        # Ticket #160
Packit Service a47777
        descr = np.dtype([('i', int), ('f', float), ('s', '|S3')])
Packit Service a47777
        x = np.rec.array([(1, 1.1, '1.0'),
Packit Service a47777
                         (2, 2.2, '2.0')], dtype=descr)
Packit Service a47777
        x[0].tolist()
Packit Service a47777
        [i for i in x[0]]
Packit Service a47777
Packit Service a47777
    def test_unicode_string_comparison(self):
Packit Service a47777
        # Ticket #190
Packit Service a47777
        a = np.array('hello', np.unicode_)
Packit Service a47777
        b = np.array('world')
Packit Service a47777
        a == b
Packit Service a47777
Packit Service a47777
    def test_tobytes_FORTRANORDER_discontiguous(self):
Packit Service a47777
        # Fix in r2836
Packit Service a47777
        # Create non-contiguous Fortran ordered array
Packit Service a47777
        x = np.array(np.random.rand(3, 3), order='F')[:, :2]
Packit Service a47777
        assert_array_almost_equal(x.ravel(), np.frombuffer(x.tobytes()))
Packit Service a47777
Packit Service a47777
    def test_flat_assignment(self):
Packit Service a47777
        # Correct behaviour of ticket #194
Packit Service a47777
        x = np.empty((3, 1))
Packit Service a47777
        x.flat = np.arange(3)
Packit Service a47777
        assert_array_almost_equal(x, [[0], [1], [2]])
Packit Service a47777
        x.flat = np.arange(3, dtype=float)
Packit Service a47777
        assert_array_almost_equal(x, [[0], [1], [2]])
Packit Service a47777
Packit Service a47777
    def test_broadcast_flat_assignment(self):
Packit Service a47777
        # Ticket #194
Packit Service a47777
        x = np.empty((3, 1))
Packit Service a47777
Packit Service a47777
        def bfa():
Packit Service a47777
            x[:] = np.arange(3)
Packit Service a47777
Packit Service a47777
        def bfb():
Packit Service a47777
            x[:] = np.arange(3, dtype=float)
Packit Service a47777
Packit Service a47777
        assert_raises(ValueError, bfa)
Packit Service a47777
        assert_raises(ValueError, bfb)
Packit Service a47777
Packit Service a47777
    def test_nonarray_assignment(self):
Packit Service a47777
        # See also Issue gh-2870, test for non-array assignment
Packit Service a47777
        # and equivalent unsafe casted array assignment
Packit Service a47777
        a = np.arange(10)
Packit Service a47777
        b = np.ones(10, dtype=bool)
Packit Service a47777
        r = np.arange(10)
Packit Service a47777
Packit Service a47777
        def assign(a, b, c):
Packit Service a47777
            a[b] = c
Packit Service a47777
Packit Service a47777
        assert_raises(ValueError, assign, a, b, np.nan)
Packit Service a47777
        a[b] = np.array(np.nan)  # but not this.
Packit Service a47777
        assert_raises(ValueError, assign, a, r, np.nan)
Packit Service a47777
        a[r] = np.array(np.nan)
Packit Service a47777
Packit Service a47777
    def test_unpickle_dtype_with_object(self):
Packit Service a47777
        # Implemented in r2840
Packit Service a47777
        dt = np.dtype([('x', int), ('y', np.object_), ('z', 'O')])
Packit Service a47777
        f = BytesIO()
Packit Service a47777
        pickle.dump(dt, f)
Packit Service a47777
        f.seek(0)
Packit Service a47777
        dt_ = pickle.load(f)
Packit Service a47777
        f.close()
Packit Service a47777
        assert_equal(dt, dt_)
Packit Service a47777
Packit Service a47777
    def test_mem_array_creation_invalid_specification(self):
Packit Service a47777
        # Ticket #196
Packit Service a47777
        dt = np.dtype([('x', int), ('y', np.object_)])
Packit Service a47777
        # Wrong way
Packit Service a47777
        assert_raises(ValueError, np.array, [1, 'object'], dt)
Packit Service a47777
        # Correct way
Packit Service a47777
        np.array([(1, 'object')], dt)
Packit Service a47777
Packit Service a47777
    def test_recarray_single_element(self):
Packit Service a47777
        # Ticket #202
Packit Service a47777
        a = np.array([1, 2, 3], dtype=np.int32)
Packit Service a47777
        b = a.copy()
Packit Service a47777
        r = np.rec.array(a, shape=1, formats=['3i4'], names=['d'])
Packit Service a47777
        assert_array_equal(a, b)
Packit Service a47777
        assert_equal(a, r[0][0])
Packit Service a47777
Packit Service a47777
    def test_zero_sized_array_indexing(self):
Packit Service a47777
        # Ticket #205
Packit Service a47777
        tmp = np.array([])
Packit Service a47777
Packit Service a47777
        def index_tmp():
Packit Service a47777
            tmp[np.array(10)]
Packit Service a47777
Packit Service a47777
        assert_raises(IndexError, index_tmp)
Packit Service a47777
Packit Service a47777
    def test_chararray_rstrip(self):
Packit Service a47777
        # Ticket #222
Packit Service a47777
        x = np.chararray((1,), 5)
Packit Service a47777
        x[0] = b'a   '
Packit Service a47777
        x = x.rstrip()
Packit Service a47777
        assert_equal(x[0], b'a')
Packit Service a47777
Packit Service a47777
    def test_object_array_shape(self):
Packit Service a47777
        # Ticket #239
Packit Service a47777
        assert_equal(np.array([[1, 2], 3, 4], dtype=object).shape, (3,))
Packit Service a47777
        assert_equal(np.array([[1, 2], [3, 4]], dtype=object).shape, (2, 2))
Packit Service a47777
        assert_equal(np.array([(1, 2), (3, 4)], dtype=object).shape, (2, 2))
Packit Service a47777
        assert_equal(np.array([], dtype=object).shape, (0,))
Packit Service a47777
        assert_equal(np.array([[], [], []], dtype=object).shape, (3, 0))
Packit Service a47777
        assert_equal(np.array([[3, 4], [5, 6], None], dtype=object).shape, (3,))
Packit Service a47777
Packit Service a47777
    def test_mem_around(self):
Packit Service a47777
        # Ticket #243
Packit Service a47777
        x = np.zeros((1,))
Packit Service a47777
        y = [0]
Packit Service a47777
        decimal = 6
Packit Service a47777
        np.around(abs(x-y), decimal) <= 10.0**(-decimal)
Packit Service a47777
Packit Service a47777
    def test_character_array_strip(self):
Packit Service a47777
        # Ticket #246
Packit Service a47777
        x = np.char.array(("x", "x ", "x  "))
Packit Service a47777
        for c in x:
Packit Service a47777
            assert_equal(c, "x")
Packit Service a47777
Packit Service a47777
    def test_lexsort(self):
Packit Service a47777
        # Lexsort memory error
Packit Service a47777
        v = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
Packit Service a47777
        assert_equal(np.lexsort(v), 0)
Packit Service a47777
Packit Service a47777
    def test_lexsort_invalid_sequence(self):
Packit Service a47777
        # Issue gh-4123
Packit Service a47777
        class BuggySequence(object):
Packit Service a47777
            def __len__(self):
Packit Service a47777
                return 4
Packit Service a47777
Packit Service a47777
            def __getitem__(self, key):
Packit Service a47777
                raise KeyError
Packit Service a47777
Packit Service a47777
        assert_raises(KeyError, np.lexsort, BuggySequence())
Packit Service a47777
Packit Service a47777
    def test_pickle_py2_bytes_encoding(self):
Packit Service a47777
        # Check that arrays and scalars pickled on Py2 are
Packit Service a47777
        # unpickleable on Py3 using encoding='bytes'
Packit Service a47777
Packit Service a47777
        test_data = [
Packit Service a47777
            # (original, py2_pickle)
Packit Service a47777
            (np.unicode_('\u6f2c'),
Packit Service a47777
             b"cnumpy.core.multiarray\nscalar\np0\n(cnumpy\ndtype\np1\n"
Packit Service a47777
             b"(S'U1'\np2\nI0\nI1\ntp3\nRp4\n(I3\nS'<'\np5\nNNNI4\nI4\n"
Packit Service a47777
             b"I0\ntp6\nbS',o\\x00\\x00'\np7\ntp8\nRp9\n."),
Packit Service a47777
Packit Service a47777
            (np.array([9e123], dtype=np.float64),
Packit Service a47777
             b"cnumpy.core.multiarray\n_reconstruct\np0\n(cnumpy\nndarray\n"
Packit Service a47777
             b"p1\n(I0\ntp2\nS'b'\np3\ntp4\nRp5\n(I1\n(I1\ntp6\ncnumpy\ndtype\n"
Packit Service a47777
             b"p7\n(S'f8'\np8\nI0\nI1\ntp9\nRp10\n(I3\nS'<'\np11\nNNNI-1\nI-1\n"
Packit Service a47777
             b"I0\ntp12\nbI00\nS'O\\x81\\xb7Z\\xaa:\\xabY'\np13\ntp14\nb."),
Packit Service a47777
Packit Service a47777
            (np.array([(9e123,)], dtype=[('name', float)]),
Packit Service a47777
             b"cnumpy.core.multiarray\n_reconstruct\np0\n(cnumpy\nndarray\np1\n"
Packit Service a47777
             b"(I0\ntp2\nS'b'\np3\ntp4\nRp5\n(I1\n(I1\ntp6\ncnumpy\ndtype\np7\n"
Packit Service a47777
             b"(S'V8'\np8\nI0\nI1\ntp9\nRp10\n(I3\nS'|'\np11\nN(S'name'\np12\ntp13\n"
Packit Service a47777
             b"(dp14\ng12\n(g7\n(S'f8'\np15\nI0\nI1\ntp16\nRp17\n(I3\nS'<'\np18\nNNNI-1\n"
Packit Service a47777
             b"I-1\nI0\ntp19\nbI0\ntp20\nsI8\nI1\nI0\ntp21\n"
Packit Service a47777
             b"bI00\nS'O\\x81\\xb7Z\\xaa:\\xabY'\np22\ntp23\nb."),
Packit Service a47777
        ]
Packit Service a47777
Packit Service a47777
        if sys.version_info[:2] >= (3, 4):
Packit Service a47777
            # encoding='bytes' was added in Py3.4
Packit Service a47777
            for original, data in test_data:
Packit Service a47777
                result = pickle.loads(data, encoding='bytes')
Packit Service a47777
                assert_equal(result, original)
Packit Service a47777
Packit Service a47777
                if isinstance(result, np.ndarray) and result.dtype.names:
Packit Service a47777
                    for name in result.dtype.names:
Packit Service a47777
                        assert_(isinstance(name, str))
Packit Service a47777
Packit Service a47777
    def test_pickle_dtype(self):
Packit Service a47777
        # Ticket #251
Packit Service a47777
        pickle.dumps(float)
Packit Service a47777
Packit Service a47777
    def test_swap_real(self):
Packit Service a47777
        # Ticket #265
Packit Service a47777
        assert_equal(np.arange(4, dtype='>c8').imag.max(), 0.0)
Packit Service a47777
        assert_equal(np.arange(4, dtype='
Packit Service a47777
        assert_equal(np.arange(4, dtype='>c8').real.max(), 3.0)
Packit Service a47777
        assert_equal(np.arange(4, dtype='
Packit Service a47777
Packit Service a47777
    def test_object_array_from_list(self):
Packit Service a47777
        # Ticket #270
Packit Service a47777
        assert_(np.array([1, 'A', None]).shape == (3,))
Packit Service a47777
Packit Service a47777
    def test_multiple_assign(self):
Packit Service a47777
        # Ticket #273
Packit Service a47777
        a = np.zeros((3, 1), int)
Packit Service a47777
        a[[1, 2]] = 1
Packit Service a47777
Packit Service a47777
    def test_empty_array_type(self):
Packit Service a47777
        assert_equal(np.array([]).dtype, np.zeros(0).dtype)
Packit Service a47777
Packit Service a47777
    def test_void_copyswap(self):
Packit Service a47777
        dt = np.dtype([('one', '
Packit Service a47777
        x = np.array((1, 2), dtype=dt)
Packit Service a47777
        x = x.byteswap()
Packit Service a47777
        assert_(x['one'] > 1 and x['two'] > 2)
Packit Service a47777
Packit Service a47777
    def test_method_args(self):
Packit Service a47777
        # Make sure methods and functions have same default axis
Packit Service a47777
        # keyword and arguments
Packit Service a47777
        funcs1 = ['argmax', 'argmin', 'sum', ('product', 'prod'),
Packit Service a47777
                 ('sometrue', 'any'),
Packit Service a47777
                 ('alltrue', 'all'), 'cumsum', ('cumproduct', 'cumprod'),
Packit Service a47777
                 'ptp', 'cumprod', 'prod', 'std', 'var', 'mean',
Packit Service a47777
                 'round', 'min', 'max', 'argsort', 'sort']
Packit Service a47777
        funcs2 = ['compress', 'take', 'repeat']
Packit Service a47777
Packit Service a47777
        for func in funcs1:
Packit Service a47777
            arr = np.random.rand(8, 7)
Packit Service a47777
            arr2 = arr.copy()
Packit Service a47777
            if isinstance(func, tuple):
Packit Service a47777
                func_meth = func[1]
Packit Service a47777
                func = func[0]
Packit Service a47777
            else:
Packit Service a47777
                func_meth = func
Packit Service a47777
            res1 = getattr(arr, func_meth)()
Packit Service a47777
            res2 = getattr(np, func)(arr2)
Packit Service a47777
            if res1 is None:
Packit Service a47777
                res1 = arr
Packit Service a47777
Packit Service a47777
            if res1.dtype.kind in 'uib':
Packit Service a47777
                assert_((res1 == res2).all(), func)
Packit Service a47777
            else:
Packit Service a47777
                assert_(abs(res1-res2).max() < 1e-8, func)
Packit Service a47777
Packit Service a47777
        for func in funcs2:
Packit Service a47777
            arr1 = np.random.rand(8, 7)
Packit Service a47777
            arr2 = np.random.rand(8, 7)
Packit Service a47777
            res1 = None
Packit Service a47777
            if func == 'compress':
Packit Service a47777
                arr1 = arr1.ravel()
Packit Service a47777
                res1 = getattr(arr2, func)(arr1)
Packit Service a47777
            else:
Packit Service a47777
                arr2 = (15*arr2).astype(int).ravel()
Packit Service a47777
            if res1 is None:
Packit Service a47777
                res1 = getattr(arr1, func)(arr2)
Packit Service a47777
            res2 = getattr(np, func)(arr1, arr2)
Packit Service a47777
            assert_(abs(res1-res2).max() < 1e-8, func)
Packit Service a47777
Packit Service a47777
    def test_mem_lexsort_strings(self):
Packit Service a47777
        # Ticket #298
Packit Service a47777
        lst = ['abc', 'cde', 'fgh']
Packit Service a47777
        np.lexsort((lst,))
Packit Service a47777
Packit Service a47777
    def test_fancy_index(self):
Packit Service a47777
        # Ticket #302
Packit Service a47777
        x = np.array([1, 2])[np.array([0])]
Packit Service a47777
        assert_equal(x.shape, (1,))
Packit Service a47777
Packit Service a47777
    def test_recarray_copy(self):
Packit Service a47777
        # Ticket #312
Packit Service a47777
        dt = [('x', np.int16), ('y', np.float64)]
Packit Service a47777
        ra = np.array([(1, 2.3)], dtype=dt)
Packit Service a47777
        rb = np.rec.array(ra, dtype=dt)
Packit Service a47777
        rb['x'] = 2.
Packit Service a47777
        assert_(ra['x'] != rb['x'])
Packit Service a47777
Packit Service a47777
    def test_rec_fromarray(self):
Packit Service a47777
        # Ticket #322
Packit Service a47777
        x1 = np.array([[1, 2], [3, 4], [5, 6]])
Packit Service a47777
        x2 = np.array(['a', 'dd', 'xyz'])
Packit Service a47777
        x3 = np.array([1.1, 2, 3])
Packit Service a47777
        np.rec.fromarrays([x1, x2, x3], formats="(2,)i4,a3,f8")
Packit Service a47777
Packit Service a47777
    def test_object_array_assign(self):
Packit Service a47777
        x = np.empty((2, 2), object)
Packit Service a47777
        x.flat[2] = (1, 2, 3)
Packit Service a47777
        assert_equal(x.flat[2], (1, 2, 3))
Packit Service a47777
Packit Service a47777
    def test_ndmin_float64(self):
Packit Service a47777
        # Ticket #324
Packit Service a47777
        x = np.array([1, 2, 3], dtype=np.float64)
Packit Service a47777
        assert_equal(np.array(x, dtype=np.float32, ndmin=2).ndim, 2)
Packit Service a47777
        assert_equal(np.array(x, dtype=np.float64, ndmin=2).ndim, 2)
Packit Service a47777
Packit Service a47777
    def test_ndmin_order(self):
Packit Service a47777
        # Issue #465 and related checks
Packit Service a47777
        assert_(np.array([1, 2], order='C', ndmin=3).flags.c_contiguous)
Packit Service a47777
        assert_(np.array([1, 2], order='F', ndmin=3).flags.f_contiguous)
Packit Service a47777
        assert_(np.array(np.ones((2, 2), order='F'), ndmin=3).flags.f_contiguous)
Packit Service a47777
        assert_(np.array(np.ones((2, 2), order='C'), ndmin=3).flags.c_contiguous)
Packit Service a47777
Packit Service a47777
    def test_mem_axis_minimization(self):
Packit Service a47777
        # Ticket #327
Packit Service a47777
        data = np.arange(5)
Packit Service a47777
        data = np.add.outer(data, data)
Packit Service a47777
Packit Service a47777
    def test_mem_float_imag(self):
Packit Service a47777
        # Ticket #330
Packit Service a47777
        np.float64(1.0).imag
Packit Service a47777
Packit Service a47777
    def test_dtype_tuple(self):
Packit Service a47777
        # Ticket #334
Packit Service a47777
        assert_(np.dtype('i4') == np.dtype(('i4', ())))
Packit Service a47777
Packit Service a47777
    def test_dtype_posttuple(self):
Packit Service a47777
        # Ticket #335
Packit Service a47777
        np.dtype([('col1', '()i4')])
Packit Service a47777
Packit Service a47777
    def test_numeric_carray_compare(self):
Packit Service a47777
        # Ticket #341
Packit Service a47777
        assert_equal(np.array(['X'], 'c'), b'X')
Packit Service a47777
Packit Service a47777
    def test_string_array_size(self):
Packit Service a47777
        # Ticket #342
Packit Service a47777
        assert_raises(ValueError,
Packit Service a47777
                              np.array, [['X'], ['X', 'X', 'X']], '|S1')
Packit Service a47777
Packit Service a47777
    def test_dtype_repr(self):
Packit Service a47777
        # Ticket #344
Packit Service a47777
        dt1 = np.dtype(('uint32', 2))
Packit Service a47777
        dt2 = np.dtype(('uint32', (2,)))
Packit Service a47777
        assert_equal(dt1.__repr__(), dt2.__repr__())
Packit Service a47777
Packit Service a47777
    def test_reshape_order(self):
Packit Service a47777
        # Make sure reshape order works.
Packit Service a47777
        a = np.arange(6).reshape(2, 3, order='F')
Packit Service a47777
        assert_equal(a, [[0, 2, 4], [1, 3, 5]])
Packit Service a47777
        a = np.array([[1, 2], [3, 4], [5, 6], [7, 8]])
Packit Service a47777
        b = a[:, 1]
Packit Service a47777
        assert_equal(b.reshape(2, 2, order='F'), [[2, 6], [4, 8]])
Packit Service a47777
Packit Service a47777
    def test_reshape_zero_strides(self):
Packit Service a47777
        # Issue #380, test reshaping of zero strided arrays
Packit Service a47777
        a = np.ones(1)
Packit Service a47777
        a = np.lib.stride_tricks.as_strided(a, shape=(5,), strides=(0,))
Packit Service a47777
        assert_(a.reshape(5, 1).strides[0] == 0)
Packit Service a47777
Packit Service a47777
    def test_reshape_zero_size(self):
Packit Service a47777
        # GitHub Issue #2700, setting shape failed for 0-sized arrays
Packit Service a47777
        a = np.ones((0, 2))
Packit Service a47777
        a.shape = (-1, 2)
Packit Service a47777
Packit Service a47777
    # Cannot test if NPY_RELAXED_STRIDES_CHECKING changes the strides.
Packit Service a47777
    # With NPY_RELAXED_STRIDES_CHECKING the test becomes superfluous.
Packit Service a47777
    @dec.skipif(np.ones(1).strides[0] == np.iinfo(np.intp).max)
Packit Service a47777
    def test_reshape_trailing_ones_strides(self):
Packit Service a47777
        # GitHub issue gh-2949, bad strides for trailing ones of new shape
Packit Service a47777
        a = np.zeros(12, dtype=np.int32)[::2]  # not contiguous
Packit Service a47777
        strides_c = (16, 8, 8, 8)
Packit Service a47777
        strides_f = (8, 24, 48, 48)
Packit Service a47777
        assert_equal(a.reshape(3, 2, 1, 1).strides, strides_c)
Packit Service a47777
        assert_equal(a.reshape(3, 2, 1, 1, order='F').strides, strides_f)
Packit Service a47777
        assert_equal(np.array(0, dtype=np.int32).reshape(1, 1).strides, (4, 4))
Packit Service a47777
Packit Service a47777
    def test_repeat_discont(self):
Packit Service a47777
        # Ticket #352
Packit Service a47777
        a = np.arange(12).reshape(4, 3)[:, 2]
Packit Service a47777
        assert_equal(a.repeat(3), [2, 2, 2, 5, 5, 5, 8, 8, 8, 11, 11, 11])
Packit Service a47777
Packit Service a47777
    def test_array_index(self):
Packit Service a47777
        # Make sure optimization is not called in this case.
Packit Service a47777
        a = np.array([1, 2, 3])
Packit Service a47777
        a2 = np.array([[1, 2, 3]])
Packit Service a47777
        assert_equal(a[np.where(a == 3)], a2[np.where(a2 == 3)])
Packit Service a47777
Packit Service a47777
    def test_object_argmax(self):
Packit Service a47777
        a = np.array([1, 2, 3], dtype=object)
Packit Service a47777
        assert_(a.argmax() == 2)
Packit Service a47777
Packit Service a47777
    def test_recarray_fields(self):
Packit Service a47777
        # Ticket #372
Packit Service a47777
        dt0 = np.dtype([('f0', 'i4'), ('f1', 'i4')])
Packit Service a47777
        dt1 = np.dtype([('f0', 'i8'), ('f1', 'i8')])
Packit Service a47777
        for a in [np.array([(1, 2), (3, 4)], "i4,i4"),
Packit Service a47777
                  np.rec.array([(1, 2), (3, 4)], "i4,i4"),
Packit Service a47777
                  np.rec.array([(1, 2), (3, 4)]),
Packit Service a47777
                  np.rec.fromarrays([(1, 2), (3, 4)], "i4,i4"),
Packit Service a47777
                  np.rec.fromarrays([(1, 2), (3, 4)])]:
Packit Service a47777
            assert_(a.dtype in [dt0, dt1])
Packit Service a47777
Packit Service a47777
    def test_random_shuffle(self):
Packit Service a47777
        # Ticket #374
Packit Service a47777
        a = np.arange(5).reshape((5, 1))
Packit Service a47777
        b = a.copy()
Packit Service a47777
        np.random.shuffle(b)
Packit Service a47777
        assert_equal(np.sort(b, axis=0), a)
Packit Service a47777
Packit Service a47777
    def test_refcount_vdot(self):
Packit Service a47777
        # Changeset #3443
Packit Service a47777
        _assert_valid_refcount(np.vdot)
Packit Service a47777
Packit Service a47777
    def test_startswith(self):
Packit Service a47777
        ca = np.char.array(['Hi', 'There'])
Packit Service a47777
        assert_equal(ca.startswith('H'), [True, False])
Packit Service a47777
Packit Service a47777
    def test_noncommutative_reduce_accumulate(self):
Packit Service a47777
        # Ticket #413
Packit Service a47777
        tosubtract = np.arange(5)
Packit Service a47777
        todivide = np.array([2.0, 0.5, 0.25])
Packit Service a47777
        assert_equal(np.subtract.reduce(tosubtract), -10)
Packit Service a47777
        assert_equal(np.divide.reduce(todivide), 16.0)
Packit Service a47777
        assert_array_equal(np.subtract.accumulate(tosubtract),
Packit Service a47777
            np.array([0, -1, -3, -6, -10]))
Packit Service a47777
        assert_array_equal(np.divide.accumulate(todivide),
Packit Service a47777
            np.array([2., 4., 16.]))
Packit Service a47777
Packit Service a47777
    def test_convolve_empty(self):
Packit Service a47777
        # Convolve should raise an error for empty input array.
Packit Service a47777
        assert_raises(ValueError, np.convolve, [], [1])
Packit Service a47777
        assert_raises(ValueError, np.convolve, [1], [])
Packit Service a47777
Packit Service a47777
    def test_multidim_byteswap(self):
Packit Service a47777
        # Ticket #449
Packit Service a47777
        r = np.array([(1, (0, 1, 2))], dtype="i2,3i2")
Packit Service a47777
        assert_array_equal(r.byteswap(),
Packit Service a47777
                           np.array([(256, (0, 256, 512))], r.dtype))
Packit Service a47777
Packit Service a47777
    def test_string_NULL(self):
Packit Service a47777
        # Changeset 3557
Packit Service a47777
        assert_equal(np.array("a\x00\x0b\x0c\x00").item(),
Packit Service a47777
                     'a\x00\x0b\x0c')
Packit Service a47777
Packit Service a47777
    def test_junk_in_string_fields_of_recarray(self):
Packit Service a47777
        # Ticket #483
Packit Service a47777
        r = np.array([[b'abc']], dtype=[('var1', '|S20')])
Packit Service a47777
        assert_(asbytes(r['var1'][0][0]) == b'abc')
Packit Service a47777
Packit Service a47777
    def test_take_output(self):
Packit Service a47777
        # Ensure that 'take' honours output parameter.
Packit Service a47777
        x = np.arange(12).reshape((3, 4))
Packit Service a47777
        a = np.take(x, [0, 2], axis=1)
Packit Service a47777
        b = np.zeros_like(a)
Packit Service a47777
        np.take(x, [0, 2], axis=1, out=b)
Packit Service a47777
        assert_array_equal(a, b)
Packit Service a47777
Packit Service a47777
    def test_take_object_fail(self):
Packit Service a47777
        # Issue gh-3001
Packit Service a47777
        d = 123.
Packit Service a47777
        a = np.array([d, 1], dtype=object)
Packit Service a47777
        if HAS_REFCOUNT:
Packit Service a47777
            ref_d = sys.getrefcount(d)
Packit Service a47777
        try:
Packit Service a47777
            a.take([0, 100])
Packit Service a47777
        except IndexError:
Packit Service a47777
            pass
Packit Service a47777
        if HAS_REFCOUNT:
Packit Service a47777
            assert_(ref_d == sys.getrefcount(d))
Packit Service a47777
Packit Service a47777
    def test_array_str_64bit(self):
Packit Service a47777
        # Ticket #501
Packit Service a47777
        s = np.array([1, np.nan], dtype=np.float64)
Packit Service a47777
        with np.errstate(all='raise'):
Packit Service a47777
            np.array_str(s)  # Should succeed
Packit Service a47777
Packit Service a47777
    def test_frompyfunc_endian(self):
Packit Service a47777
        # Ticket #503
Packit Service a47777
        from math import radians
Packit Service a47777
        uradians = np.frompyfunc(radians, 1, 1)
Packit Service a47777
        big_endian = np.array([83.4, 83.5], dtype='>f8')
Packit Service a47777
        little_endian = np.array([83.4, 83.5], dtype='
Packit Service a47777
        assert_almost_equal(uradians(big_endian).astype(float),
Packit Service a47777
                            uradians(little_endian).astype(float))
Packit Service a47777
Packit Service a47777
    def test_mem_string_arr(self):
Packit Service a47777
        # Ticket #514
Packit Service a47777
        s = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Packit Service a47777
        t = []
Packit Service a47777
        np.hstack((t, s))
Packit Service a47777
Packit Service a47777
    def test_arr_transpose(self):
Packit Service a47777
        # Ticket #516
Packit Service a47777
        x = np.random.rand(*(2,)*16)
Packit Service a47777
        x.transpose(list(range(16)))  # Should succeed
Packit Service a47777
Packit Service a47777
    def test_string_mergesort(self):
Packit Service a47777
        # Ticket #540
Packit Service a47777
        x = np.array(['a']*32)
Packit Service a47777
        assert_array_equal(x.argsort(kind='m'), np.arange(32))
Packit Service a47777
Packit Service a47777
    def test_argmax_byteorder(self):
Packit Service a47777
        # Ticket #546
Packit Service a47777
        a = np.arange(3, dtype='>f')
Packit Service a47777
        assert_(a[a.argmax()] == a.max())
Packit Service a47777
Packit Service a47777
    def test_rand_seed(self):
Packit Service a47777
        # Ticket #555
Packit Service a47777
        for l in np.arange(4):
Packit Service a47777
            np.random.seed(l)
Packit Service a47777
Packit Service a47777
    def test_mem_deallocation_leak(self):
Packit Service a47777
        # Ticket #562
Packit Service a47777
        a = np.zeros(5, dtype=float)
Packit Service a47777
        b = np.array(a, dtype=float)
Packit Service a47777
        del a, b
Packit Service a47777
Packit Service a47777
    def test_mem_on_invalid_dtype(self):
Packit Service a47777
        "Ticket #583"
Packit Service a47777
        assert_raises(ValueError, np.fromiter, [['12', ''], ['13', '']], str)
Packit Service a47777
Packit Service a47777
    def test_dot_negative_stride(self):
Packit Service a47777
        # Ticket #588
Packit Service a47777
        x = np.array([[1, 5, 25, 125., 625]])
Packit Service a47777
        y = np.array([[20.], [160.], [640.], [1280.], [1024.]])
Packit Service a47777
        z = y[::-1].copy()
Packit Service a47777
        y2 = y[::-1]
Packit Service a47777
        assert_equal(np.dot(x, z), np.dot(x, y2))
Packit Service a47777
Packit Service a47777
    def test_object_casting(self):
Packit Service a47777
        # This used to trigger the object-type version of
Packit Service a47777
        # the bitwise_or operation, because float64 -> object
Packit Service a47777
        # casting succeeds
Packit Service a47777
        def rs():
Packit Service a47777
            x = np.ones([484, 286])
Packit Service a47777
            y = np.zeros([484, 286])
Packit Service a47777
            x |= y
Packit Service a47777
Packit Service a47777
        assert_raises(TypeError, rs)
Packit Service a47777
Packit Service a47777
    def test_unicode_scalar(self):
Packit Service a47777
        # Ticket #600
Packit Service a47777
        x = np.array(["DROND", "DROND1"], dtype="U6")
Packit Service a47777
        el = x[1]
Packit Service a47777
        new = pickle.loads(pickle.dumps(el))
Packit Service a47777
        assert_equal(new, el)
Packit Service a47777
Packit Service a47777
    def test_arange_non_native_dtype(self):
Packit Service a47777
        # Ticket #616
Packit Service a47777
        for T in ('>f4', '
Packit Service a47777
            dt = np.dtype(T)
Packit Service a47777
            assert_equal(np.arange(0, dtype=dt).dtype, dt)
Packit Service a47777
            assert_equal(np.arange(0.5, dtype=dt).dtype, dt)
Packit Service a47777
            assert_equal(np.arange(5, dtype=dt).dtype, dt)
Packit Service a47777
Packit Service a47777
    def test_bool_flat_indexing_invalid_nr_elements(self):
Packit Service a47777
        s = np.ones(10, dtype=float)
Packit Service a47777
        x = np.array((15,), dtype=float)
Packit Service a47777
Packit Service a47777
        def ia(x, s, v):
Packit Service a47777
            x[(s > 0)] = v
Packit Service a47777
Packit Service a47777
        assert_raises(IndexError, ia, x, s, np.zeros(9, dtype=float))
Packit Service a47777
        assert_raises(IndexError, ia, x, s, np.zeros(11, dtype=float))
Packit Service a47777
Packit Service a47777
        # Old special case (different code path):
Packit Service a47777
        assert_raises(ValueError, ia, x.flat, s, np.zeros(9, dtype=float))
Packit Service a47777
        assert_raises(ValueError, ia, x.flat, s, np.zeros(11, dtype=float))
Packit Service a47777
Packit Service a47777
    def test_mem_scalar_indexing(self):
Packit Service a47777
        # Ticket #603
Packit Service a47777
        x = np.array([0], dtype=float)
Packit Service a47777
        index = np.array(0, dtype=np.int32)
Packit Service a47777
        x[index]
Packit Service a47777
Packit Service a47777
    def test_binary_repr_0_width(self):
Packit Service a47777
        assert_equal(np.binary_repr(0, width=3), '000')
Packit Service a47777
Packit Service a47777
    def test_fromstring(self):
Packit Service a47777
        assert_equal(np.fromstring("12:09:09", dtype=int, sep=":"),
Packit Service a47777
                     [12, 9, 9])
Packit Service a47777
Packit Service a47777
    def test_searchsorted_variable_length(self):
Packit Service a47777
        x = np.array(['a', 'aa', 'b'])
Packit Service a47777
        y = np.array(['d', 'e'])
Packit Service a47777
        assert_equal(x.searchsorted(y), [3, 3])
Packit Service a47777
Packit Service a47777
    def test_string_argsort_with_zeros(self):
Packit Service a47777
        # Check argsort for strings containing zeros.
Packit Service a47777
        x = np.frombuffer(b"\x00\x02\x00\x01", dtype="|S2")
Packit Service a47777
        assert_array_equal(x.argsort(kind='m'), np.array([1, 0]))
Packit Service a47777
        assert_array_equal(x.argsort(kind='q'), np.array([1, 0]))
Packit Service a47777
Packit Service a47777
    def test_string_sort_with_zeros(self):
Packit Service a47777
        # Check sort for strings containing zeros.
Packit Service a47777
        x = np.frombuffer(b"\x00\x02\x00\x01", dtype="|S2")
Packit Service a47777
        y = np.frombuffer(b"\x00\x01\x00\x02", dtype="|S2")
Packit Service a47777
        assert_array_equal(np.sort(x, kind="q"), y)
Packit Service a47777
Packit Service a47777
    def test_copy_detection_zero_dim(self):
Packit Service a47777
        # Ticket #658
Packit Service a47777
        np.indices((0, 3, 4)).T.reshape(-1, 3)
Packit Service a47777
Packit Service a47777
    def test_flat_byteorder(self):
Packit Service a47777
        # Ticket #657
Packit Service a47777
        x = np.arange(10)
Packit Service a47777
        assert_array_equal(x.astype('>i4'), x.astype('
Packit Service a47777
        assert_array_equal(x.astype('>i4').flat[:], x.astype('
Packit Service a47777
Packit Service a47777
    def test_sign_bit(self):
Packit Service a47777
        x = np.array([0, -0.0, 0])
Packit Service a47777
        assert_equal(str(np.abs(x)), '[0. 0. 0.]')
Packit Service a47777
Packit Service a47777
    def test_flat_index_byteswap(self):
Packit Service a47777
        for dt in (np.dtype('<i4'), np.dtype('>i4')):
Packit Service a47777
            x = np.array([-1, 0, 1], dtype=dt)
Packit Service a47777
            assert_equal(x.flat[0].dtype, x[0].dtype)
Packit Service a47777
Packit Service a47777
    def test_copy_detection_corner_case(self):
Packit Service a47777
        # Ticket #658
Packit Service a47777
        np.indices((0, 3, 4)).T.reshape(-1, 3)
Packit Service a47777
Packit Service a47777
    # Cannot test if NPY_RELAXED_STRIDES_CHECKING changes the strides.
Packit Service a47777
    # With NPY_RELAXED_STRIDES_CHECKING the test becomes superfluous,
Packit Service a47777
    # 0-sized reshape itself is tested elsewhere.
Packit Service a47777
    @dec.skipif(np.ones(1).strides[0] == np.iinfo(np.intp).max)
Packit Service a47777
    def test_copy_detection_corner_case2(self):
Packit Service a47777
        # Ticket #771: strides are not set correctly when reshaping 0-sized
Packit Service a47777
        # arrays
Packit Service a47777
        b = np.indices((0, 3, 4)).T.reshape(-1, 3)
Packit Service a47777
        assert_equal(b.strides, (3 * b.itemsize, b.itemsize))
Packit Service a47777
Packit Service a47777
    def test_object_array_refcounting(self):
Packit Service a47777
        # Ticket #633
Packit Service a47777
        if not hasattr(sys, 'getrefcount'):
Packit Service a47777
            return
Packit Service a47777
Packit Service a47777
        # NB. this is probably CPython-specific
Packit Service a47777
Packit Service a47777
        cnt = sys.getrefcount
Packit Service a47777
Packit Service a47777
        a = object()
Packit Service a47777
        b = object()
Packit Service a47777
        c = object()
Packit Service a47777
Packit Service a47777
        cnt0_a = cnt(a)
Packit Service a47777
        cnt0_b = cnt(b)
Packit Service a47777
        cnt0_c = cnt(c)
Packit Service a47777
Packit Service a47777
        # -- 0d -> 1-d broadcast slice assignment
Packit Service a47777
Packit Service a47777
        arr = np.zeros(5, dtype=np.object_)
Packit Service a47777
Packit Service a47777
        arr[:] = a
Packit Service a47777
        assert_equal(cnt(a), cnt0_a + 5)
Packit Service a47777
Packit Service a47777
        arr[:] = b
Packit Service a47777
        assert_equal(cnt(a), cnt0_a)
Packit Service a47777
        assert_equal(cnt(b), cnt0_b + 5)
Packit Service a47777
Packit Service a47777
        arr[:2] = c
Packit Service a47777
        assert_equal(cnt(b), cnt0_b + 3)
Packit Service a47777
        assert_equal(cnt(c), cnt0_c + 2)
Packit Service a47777
Packit Service a47777
        del arr
Packit Service a47777
Packit Service a47777
        # -- 1-d -> 2-d broadcast slice assignment
Packit Service a47777
Packit Service a47777
        arr = np.zeros((5, 2), dtype=np.object_)
Packit Service a47777
        arr0 = np.zeros(2, dtype=np.object_)
Packit Service a47777
Packit Service a47777
        arr0[0] = a
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 1)
Packit Service a47777
        arr0[1] = b
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 1)
Packit Service a47777
Packit Service a47777
        arr[:, :] = arr0
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 6)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 6)
Packit Service a47777
Packit Service a47777
        arr[:, 0] = None
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 1)
Packit Service a47777
Packit Service a47777
        del arr, arr0
Packit Service a47777
Packit Service a47777
        # -- 2-d copying + flattening
Packit Service a47777
Packit Service a47777
        arr = np.zeros((5, 2), dtype=np.object_)
Packit Service a47777
Packit Service a47777
        arr[:, 0] = a
Packit Service a47777
        arr[:, 1] = b
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 5)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 5)
Packit Service a47777
Packit Service a47777
        arr2 = arr.copy()
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 10)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 10)
Packit Service a47777
Packit Service a47777
        arr2 = arr[:, 0].copy()
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 10)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 5)
Packit Service a47777
Packit Service a47777
        arr2 = arr.flatten()
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 10)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 10)
Packit Service a47777
Packit Service a47777
        del arr, arr2
Packit Service a47777
Packit Service a47777
        # -- concatenate, repeat, take, choose
Packit Service a47777
Packit Service a47777
        arr1 = np.zeros((5, 1), dtype=np.object_)
Packit Service a47777
        arr2 = np.zeros((5, 1), dtype=np.object_)
Packit Service a47777
Packit Service a47777
        arr1[...] = a
Packit Service a47777
        arr2[...] = b
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 5)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 5)
Packit Service a47777
Packit Service a47777
        tmp = np.concatenate((arr1, arr2))
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 5 + 5)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 5 + 5)
Packit Service a47777
Packit Service a47777
        tmp = arr1.repeat(3, axis=0)
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 5 + 3*5)
Packit Service a47777
Packit Service a47777
        tmp = arr1.take([1, 2, 3], axis=0)
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 5 + 3)
Packit Service a47777
Packit Service a47777
        x = np.array([[0], [1], [0], [1], [1]], int)
Packit Service a47777
        tmp = x.choose(arr1, arr2)
Packit Service a47777
        assert_(cnt(a) == cnt0_a + 5 + 2)
Packit Service a47777
        assert_(cnt(b) == cnt0_b + 5 + 3)
Packit Service a47777
Packit Service a47777
        del tmp  # Avoid pyflakes unused variable warning
Packit Service a47777
Packit Service a47777
    def test_mem_custom_float_to_array(self):
Packit Service a47777
        # Ticket 702
Packit Service a47777
        class MyFloat(object):
Packit Service a47777
            def __float__(self):
Packit Service a47777
                return 1.0
Packit Service a47777
Packit Service a47777
        tmp = np.atleast_1d([MyFloat()])
Packit Service a47777
        tmp.astype(float)  # Should succeed
Packit Service a47777
Packit Service a47777
    def test_object_array_refcount_self_assign(self):
Packit Service a47777
        # Ticket #711
Packit Service a47777
        class VictimObject(object):
Packit Service a47777
            deleted = False
Packit Service a47777
Packit Service a47777
            def __del__(self):
Packit Service a47777
                self.deleted = True
Packit Service a47777
Packit Service a47777
        d = VictimObject()
Packit Service a47777
        arr = np.zeros(5, dtype=np.object_)
Packit Service a47777
        arr[:] = d
Packit Service a47777
        del d
Packit Service a47777
        arr[:] = arr  # refcount of 'd' might hit zero here
Packit Service a47777
        assert_(not arr[0].deleted)
Packit Service a47777
        arr[:] = arr  # trying to induce a segfault by doing it again...
Packit Service a47777
        assert_(not arr[0].deleted)
Packit Service a47777
Packit Service a47777
    def test_mem_fromiter_invalid_dtype_string(self):
Packit Service a47777
        x = [1, 2, 3]
Packit Service a47777
        assert_raises(ValueError,
Packit Service a47777
                              np.fromiter, [xi for xi in x], dtype='S')
Packit Service a47777
Packit Service a47777
    def test_reduce_big_object_array(self):
Packit Service a47777
        # Ticket #713
Packit Service a47777
        oldsize = np.setbufsize(10*16)
Packit Service a47777
        a = np.array([None]*161, object)
Packit Service a47777
        assert_(not np.any(a))
Packit Service a47777
        np.setbufsize(oldsize)
Packit Service a47777
Packit Service a47777
    def test_mem_0d_array_index(self):
Packit Service a47777
        # Ticket #714
Packit Service a47777
        np.zeros(10)[np.array(0)]
Packit Service a47777
Packit Service a47777
    def test_nonnative_endian_fill(self):
Packit Service a47777
        # Non-native endian arrays were incorrectly filled with scalars
Packit Service a47777
        # before r5034.
Packit Service a47777
        if sys.byteorder == 'little':
Packit Service a47777
            dtype = np.dtype('>i4')
Packit Service a47777
        else:
Packit Service a47777
            dtype = np.dtype('
Packit Service a47777
        x = np.empty([1], dtype=dtype)
Packit Service a47777
        x.fill(1)
Packit Service a47777
        assert_equal(x, np.array([1], dtype=dtype))
Packit Service a47777
Packit Service a47777
    def test_dot_alignment_sse2(self):
Packit Service a47777
        # Test for ticket #551, changeset r5140
Packit Service a47777
        x = np.zeros((30, 40))
Packit Service a47777
        y = pickle.loads(pickle.dumps(x))
Packit Service a47777
        # y is now typically not aligned on a 8-byte boundary
Packit Service a47777
        z = np.ones((1, y.shape[0]))
Packit Service a47777
        # This shouldn't cause a segmentation fault:
Packit Service a47777
        np.dot(z, y)
Packit Service a47777
Packit Service a47777
    def test_astype_copy(self):
Packit Service a47777
        # Ticket #788, changeset r5155
Packit Service a47777
        # The test data file was generated by scipy.io.savemat.
Packit Service a47777
        # The dtype is float64, but the isbuiltin attribute is 0.
Packit Service a47777
        data_dir = path.join(path.dirname(__file__), 'data')
Packit Service a47777
        filename = path.join(data_dir, "astype_copy.pkl")
Packit Service a47777
        if sys.version_info[0] >= 3:
Packit Service a47777
            f = open(filename, 'rb')
Packit Service a47777
            xp = pickle.load(f, encoding='latin1')
Packit Service a47777
            f.close()
Packit Service a47777
        else:
Packit Service a47777
            f = open(filename)
Packit Service a47777
            xp = pickle.load(f)
Packit Service a47777
            f.close()
Packit Service a47777
        xpd = xp.astype(np.float64)
Packit Service a47777
        assert_((xp.__array_interface__['data'][0] !=
Packit Service a47777
                xpd.__array_interface__['data'][0]))
Packit Service a47777
Packit Service a47777
    def test_compress_small_type(self):
Packit Service a47777
        # Ticket #789, changeset 5217.
Packit Service a47777
        # compress with out argument segfaulted if cannot cast safely
Packit Service a47777
        import numpy as np
Packit Service a47777
        a = np.array([[1, 2], [3, 4]])
Packit Service a47777
        b = np.zeros((2, 1), dtype=np.single)
Packit Service a47777
        try:
Packit Service a47777
            a.compress([True, False], axis=1, out=b)
Packit Service a47777
            raise AssertionError("compress with an out which cannot be "
Packit Service a47777
                                 "safely casted should not return "
Packit Service a47777
                                 "successfully")
Packit Service a47777
        except TypeError:
Packit Service a47777
            pass
Packit Service a47777
Packit Service a47777
    def test_attributes(self):
Packit Service a47777
        # Ticket #791
Packit Service a47777
        class TestArray(np.ndarray):
Packit Service a47777
            def __new__(cls, data, info):
Packit Service a47777
                result = np.array(data)
Packit Service a47777
                result = result.view(cls)
Packit Service a47777
                result.info = info
Packit Service a47777
                return result
Packit Service a47777
Packit Service a47777
            def __array_finalize__(self, obj):
Packit Service a47777
                self.info = getattr(obj, 'info', '')
Packit Service a47777
Packit Service a47777
        dat = TestArray([[1, 2, 3, 4], [5, 6, 7, 8]], 'jubba')
Packit Service a47777
        assert_(dat.info == 'jubba')
Packit Service a47777
        dat.resize((4, 2))
Packit Service a47777
        assert_(dat.info == 'jubba')
Packit Service a47777
        dat.sort()
Packit Service a47777
        assert_(dat.info == 'jubba')
Packit Service a47777
        dat.fill(2)
Packit Service a47777
        assert_(dat.info == 'jubba')
Packit Service a47777
        dat.put([2, 3, 4], [6, 3, 4])
Packit Service a47777
        assert_(dat.info == 'jubba')
Packit Service a47777
        dat.setfield(4, np.int32, 0)
Packit Service a47777
        assert_(dat.info == 'jubba')
Packit Service a47777
        dat.setflags()
Packit Service a47777
        assert_(dat.info == 'jubba')
Packit Service a47777
        assert_(dat.all(1).info == 'jubba')
Packit Service a47777
        assert_(dat.any(1).info == 'jubba')
Packit Service a47777
        assert_(dat.argmax(1).info == 'jubba')
Packit Service a47777
        assert_(dat.argmin(1).info == 'jubba')
Packit Service a47777
        assert_(dat.argsort(1).info == 'jubba')
Packit Service a47777
        assert_(dat.astype(TestArray).info == 'jubba')
Packit Service a47777
        assert_(dat.byteswap().info == 'jubba')
Packit Service a47777
        assert_(dat.clip(2, 7).info == 'jubba')
Packit Service a47777
        assert_(dat.compress([0, 1, 1]).info == 'jubba')
Packit Service a47777
        assert_(dat.conj().info == 'jubba')
Packit Service a47777
        assert_(dat.conjugate().info == 'jubba')
Packit Service a47777
        assert_(dat.copy().info == 'jubba')
Packit Service a47777
        dat2 = TestArray([2, 3, 1, 0], 'jubba')
Packit Service a47777
        choices = [[0, 1, 2, 3], [10, 11, 12, 13],
Packit Service a47777
                   [20, 21, 22, 23], [30, 31, 32, 33]]
Packit Service a47777
        assert_(dat2.choose(choices).info == 'jubba')
Packit Service a47777
        assert_(dat.cumprod(1).info == 'jubba')
Packit Service a47777
        assert_(dat.cumsum(1).info == 'jubba')
Packit Service a47777
        assert_(dat.diagonal().info == 'jubba')
Packit Service a47777
        assert_(dat.flatten().info == 'jubba')
Packit Service a47777
        assert_(dat.getfield(np.int32, 0).info == 'jubba')
Packit Service a47777
        assert_(dat.imag.info == 'jubba')
Packit Service a47777
        assert_(dat.max(1).info == 'jubba')
Packit Service a47777
        assert_(dat.mean(1).info == 'jubba')
Packit Service a47777
        assert_(dat.min(1).info == 'jubba')
Packit Service a47777
        assert_(dat.newbyteorder().info == 'jubba')
Packit Service a47777
        assert_(dat.prod(1).info == 'jubba')
Packit Service a47777
        assert_(dat.ptp(1).info == 'jubba')
Packit Service a47777
        assert_(dat.ravel().info == 'jubba')
Packit Service a47777
        assert_(dat.real.info == 'jubba')
Packit Service a47777
        assert_(dat.repeat(2).info == 'jubba')
Packit Service a47777
        assert_(dat.reshape((2, 4)).info == 'jubba')
Packit Service a47777
        assert_(dat.round().info == 'jubba')
Packit Service a47777
        assert_(dat.squeeze().info == 'jubba')
Packit Service a47777
        assert_(dat.std(1).info == 'jubba')
Packit Service a47777
        assert_(dat.sum(1).info == 'jubba')
Packit Service a47777
        assert_(dat.swapaxes(0, 1).info == 'jubba')
Packit Service a47777
        assert_(dat.take([2, 3, 5]).info == 'jubba')
Packit Service a47777
        assert_(dat.transpose().info == 'jubba')
Packit Service a47777
        assert_(dat.T.info == 'jubba')
Packit Service a47777
        assert_(dat.var(1).info == 'jubba')
Packit Service a47777
        assert_(dat.view(TestArray).info == 'jubba')
Packit Service a47777
        # These methods do not preserve subclasses
Packit Service a47777
        assert_(type(dat.nonzero()[0]) is np.ndarray)
Packit Service a47777
        assert_(type(dat.nonzero()[1]) is np.ndarray)
Packit Service a47777
Packit Service a47777
    def test_recarray_tolist(self):
Packit Service a47777
        # Ticket #793, changeset r5215
Packit Service a47777
        # Comparisons fail for NaN, so we can't use random memory
Packit Service a47777
        # for the test.
Packit Service a47777
        buf = np.zeros(40, dtype=np.int8)
Packit Service a47777
        a = np.recarray(2, formats="i4,f8,f8", names="id,x,y", buf=buf)
Packit Service a47777
        b = a.tolist()
Packit Service a47777
        assert_( a[0].tolist() == b[0])
Packit Service a47777
        assert_( a[1].tolist() == b[1])
Packit Service a47777
Packit Service a47777
    def test_nonscalar_item_method(self):
Packit Service a47777
        # Make sure that .item() fails graciously when it should
Packit Service a47777
        a = np.arange(5)
Packit Service a47777
        assert_raises(ValueError, a.item)
Packit Service a47777
Packit Service a47777
    def test_char_array_creation(self):
Packit Service a47777
        a = np.array('123', dtype='c')
Packit Service a47777
        b = np.array([b'1', b'2', b'3'])
Packit Service a47777
        assert_equal(a, b)
Packit Service a47777
Packit Service a47777
    def test_unaligned_unicode_access(self):
Packit Service a47777
        # Ticket #825
Packit Service a47777
        for i in range(1, 9):
Packit Service a47777
            msg = 'unicode offset: %d chars' % i
Packit Service a47777
            t = np.dtype([('a', 'S%d' % i), ('b', 'U2')])
Packit Service a47777
            x = np.array([(b'a', u'b')], dtype=t)
Packit Service a47777
            if sys.version_info[0] >= 3:
Packit Service a47777
                assert_equal(str(x), "[(b'a', 'b')]", err_msg=msg)
Packit Service a47777
            else:
Packit Service a47777
                assert_equal(str(x), "[('a', u'b')]", err_msg=msg)
Packit Service a47777
Packit Service a47777
    def test_sign_for_complex_nan(self):
Packit Service a47777
        # Ticket 794.
Packit Service a47777
        with np.errstate(invalid='ignore'):
Packit Service a47777
            C = np.array([-np.inf, -2+1j, 0, 2-1j, np.inf, np.nan])
Packit Service a47777
            have = np.sign(C)
Packit Service a47777
            want = np.array([-1+0j, -1+0j, 0+0j, 1+0j, 1+0j, np.nan])
Packit Service a47777
            assert_equal(have, want)
Packit Service a47777
Packit Service a47777
    def test_for_equal_names(self):
Packit Service a47777
        # Ticket #674
Packit Service a47777
        dt = np.dtype([('foo', float), ('bar', float)])
Packit Service a47777
        a = np.zeros(10, dt)
Packit Service a47777
        b = list(a.dtype.names)
Packit Service a47777
        b[0] = "notfoo"
Packit Service a47777
        a.dtype.names = b
Packit Service a47777
        assert_(a.dtype.names[0] == "notfoo")
Packit Service a47777
        assert_(a.dtype.names[1] == "bar")
Packit Service a47777
Packit Service a47777
    def test_for_object_scalar_creation(self):
Packit Service a47777
        # Ticket #816
Packit Service a47777
        a = np.object_()
Packit Service a47777
        b = np.object_(3)
Packit Service a47777
        b2 = np.object_(3.0)
Packit Service a47777
        c = np.object_([4, 5])
Packit Service a47777
        d = np.object_([None, {}, []])
Packit Service a47777
        assert_(a is None)
Packit Service a47777
        assert_(type(b) is int)
Packit Service a47777
        assert_(type(b2) is float)
Packit Service a47777
        assert_(type(c) is np.ndarray)
Packit Service a47777
        assert_(c.dtype == object)
Packit Service a47777
        assert_(d.dtype == object)
Packit Service a47777
Packit Service a47777
    def test_array_resize_method_system_error(self):
Packit Service a47777
        # Ticket #840 - order should be an invalid keyword.
Packit Service a47777
        x = np.array([[0, 1], [2, 3]])
Packit Service a47777
        assert_raises(TypeError, x.resize, (2, 2), order='C')
Packit Service a47777
Packit Service a47777
    def test_for_zero_length_in_choose(self):
Packit Service a47777
        "Ticket #882"
Packit Service a47777
        a = np.array(1)
Packit Service a47777
        assert_raises(ValueError, lambda x: x.choose([]), a)
Packit Service a47777
Packit Service a47777
    def test_array_ndmin_overflow(self):
Packit Service a47777
        "Ticket #947."
Packit Service a47777
        assert_raises(ValueError, lambda: np.array([1], ndmin=33))
Packit Service a47777
Packit Service a47777
    def test_void_scalar_with_titles(self):
Packit Service a47777
        # No ticket
Packit Service a47777
        data = [('john', 4), ('mary', 5)]
Packit Service a47777
        dtype1 = [(('source:yy', 'name'), 'O'), (('source:xx', 'id'), int)]
Packit Service a47777
        arr = np.array(data, dtype=dtype1)
Packit Service a47777
        assert_(arr[0][0] == 'john')
Packit Service a47777
        assert_(arr[0][1] == 4)
Packit Service a47777
Packit Service a47777
    def test_void_scalar_constructor(self):
Packit Service a47777
        #Issue #1550
Packit Service a47777
Packit Service a47777
        #Create test string data, construct void scalar from data and assert
Packit Service a47777
        #that void scalar contains original data.
Packit Service a47777
        test_string = np.array("test")
Packit Service a47777
        test_string_void_scalar = np.core.multiarray.scalar(
Packit Service a47777
            np.dtype(("V", test_string.dtype.itemsize)), test_string.tobytes())
Packit Service a47777
Packit Service a47777
        assert_(test_string_void_scalar.view(test_string.dtype) == test_string)
Packit Service a47777
Packit Service a47777
        #Create record scalar, construct from data and assert that
Packit Service a47777
        #reconstructed scalar is correct.
Packit Service a47777
        test_record = np.ones((), "i,i")
Packit Service a47777
        test_record_void_scalar = np.core.multiarray.scalar(
Packit Service a47777
            test_record.dtype, test_record.tobytes())
Packit Service a47777
Packit Service a47777
        assert_(test_record_void_scalar == test_record)
Packit Service a47777
Packit Service a47777
        #Test pickle and unpickle of void and record scalars
Packit Service a47777
        assert_(pickle.loads(pickle.dumps(test_string)) == test_string)
Packit Service a47777
        assert_(pickle.loads(pickle.dumps(test_record)) == test_record)
Packit Service a47777
Packit Service a47777
    def test_blasdot_uninitialized_memory(self):
Packit Service a47777
        # Ticket #950
Packit Service a47777
        for m in [0, 1, 2]:
Packit Service a47777
            for n in [0, 1, 2]:
Packit Service a47777
                for k in range(3):
Packit Service a47777
                    # Try to ensure that x->data contains non-zero floats
Packit Service a47777
                    x = np.array([123456789e199], dtype=np.float64)
Packit Service a47777
                    if IS_PYPY:
Packit Service a47777
                        x.resize((m, 0), refcheck=False)
Packit Service a47777
                    else:
Packit Service a47777
                        x.resize((m, 0))
Packit Service a47777
                    y = np.array([123456789e199], dtype=np.float64)
Packit Service a47777
                    if IS_PYPY:
Packit Service a47777
                        y.resize((0, n), refcheck=False)
Packit Service a47777
                    else:
Packit Service a47777
                        y.resize((0, n))
Packit Service a47777
Packit Service a47777
                    # `dot` should just return zero (m, n) matrix
Packit Service a47777
                    z = np.dot(x, y)
Packit Service a47777
                    assert_(np.all(z == 0))
Packit Service a47777
                    assert_(z.shape == (m, n))
Packit Service a47777
Packit Service a47777
    def test_zeros(self):
Packit Service a47777
        # Regression test for #1061.
Packit Service a47777
        # Set a size which cannot fit into a 64 bits signed integer
Packit Service a47777
        sz = 2 ** 64
Packit Service a47777
        good = 'Maximum allowed dimension exceeded'
Packit Service a47777
        try:
Packit Service a47777
            np.empty(sz)
Packit Service a47777
        except ValueError as e:
Packit Service a47777
            if not str(e) == good:
Packit Service a47777
                self.fail("Got msg '%s', expected '%s'" % (e, good))
Packit Service a47777
        except Exception as e:
Packit Service a47777
            self.fail("Got exception of type %s instead of ValueError" % type(e))
Packit Service a47777
Packit Service a47777
    def test_huge_arange(self):
Packit Service a47777
        # Regression test for #1062.
Packit Service a47777
        # Set a size which cannot fit into a 64 bits signed integer
Packit Service a47777
        sz = 2 ** 64
Packit Service a47777
        good = 'Maximum allowed size exceeded'
Packit Service a47777
        try:
Packit Service a47777
            np.arange(sz)
Packit Service a47777
            assert_(np.size == sz)
Packit Service a47777
        except ValueError as e:
Packit Service a47777
            if not str(e) == good:
Packit Service a47777
                self.fail("Got msg '%s', expected '%s'" % (e, good))
Packit Service a47777
        except Exception as e:
Packit Service a47777
            self.fail("Got exception of type %s instead of ValueError" % type(e))
Packit Service a47777
Packit Service a47777
    def test_fromiter_bytes(self):
Packit Service a47777
        # Ticket #1058
Packit Service a47777
        a = np.fromiter(list(range(10)), dtype='b')
Packit Service a47777
        b = np.fromiter(list(range(10)), dtype='B')
Packit Service a47777
        assert_(np.alltrue(a == np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])))
Packit Service a47777
        assert_(np.alltrue(b == np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])))
Packit Service a47777
Packit Service a47777
    def test_array_from_sequence_scalar_array(self):
Packit Service a47777
        # Ticket #1078: segfaults when creating an array with a sequence of
Packit Service a47777
        # 0d arrays.
Packit Service a47777
        a = np.array((np.ones(2), np.array(2)))
Packit Service a47777
        assert_equal(a.shape, (2,))
Packit Service a47777
        assert_equal(a.dtype, np.dtype(object))
Packit Service a47777
        assert_equal(a[0], np.ones(2))
Packit Service a47777
        assert_equal(a[1], np.array(2))
Packit Service a47777
Packit Service a47777
        a = np.array(((1,), np.array(1)))
Packit Service a47777
        assert_equal(a.shape, (2,))
Packit Service a47777
        assert_equal(a.dtype, np.dtype(object))
Packit Service a47777
        assert_equal(a[0], (1,))
Packit Service a47777
        assert_equal(a[1], np.array(1))
Packit Service a47777
Packit Service a47777
    def test_array_from_sequence_scalar_array2(self):
Packit Service a47777
        # Ticket #1081: weird array with strange input...
Packit Service a47777
        t = np.array([np.array([]), np.array(0, object)])
Packit Service a47777
        assert_equal(t.shape, (2,))
Packit Service a47777
        assert_equal(t.dtype, np.dtype(object))
Packit Service a47777
Packit Service a47777
    def test_array_too_big(self):
Packit Service a47777
        # Ticket #1080.
Packit Service a47777
        assert_raises(ValueError, np.zeros, [975]*7, np.int8)
Packit Service a47777
        assert_raises(ValueError, np.zeros, [26244]*5, np.int8)
Packit Service a47777
Packit Service a47777
    def test_dtype_keyerrors_(self):
Packit Service a47777
        # Ticket #1106.
Packit Service a47777
        dt = np.dtype([('f1', np.uint)])
Packit Service a47777
        assert_raises(KeyError, dt.__getitem__, "f2")
Packit Service a47777
        assert_raises(IndexError, dt.__getitem__, 1)
Packit Service a47777
        assert_raises(TypeError, dt.__getitem__, 0.0)
Packit Service a47777
Packit Service a47777
    def test_lexsort_buffer_length(self):
Packit Service a47777
        # Ticket #1217, don't segfault.
Packit Service a47777
        a = np.ones(100, dtype=np.int8)
Packit Service a47777
        b = np.ones(100, dtype=np.int32)
Packit Service a47777
        i = np.lexsort((a[::-1], b))
Packit Service a47777
        assert_equal(i, np.arange(100, dtype=int))
Packit Service a47777
Packit Service a47777
    def test_object_array_to_fixed_string(self):
Packit Service a47777
        # Ticket #1235.
Packit Service a47777
        a = np.array(['abcdefgh', 'ijklmnop'], dtype=np.object_)
Packit Service a47777
        b = np.array(a, dtype=(np.str_, 8))
Packit Service a47777
        assert_equal(a, b)
Packit Service a47777
        c = np.array(a, dtype=(np.str_, 5))
Packit Service a47777
        assert_equal(c, np.array(['abcde', 'ijklm']))
Packit Service a47777
        d = np.array(a, dtype=(np.str_, 12))
Packit Service a47777
        assert_equal(a, d)
Packit Service a47777
        e = np.empty((2, ), dtype=(np.str_, 8))
Packit Service a47777
        e[:] = a[:]
Packit Service a47777
        assert_equal(a, e)
Packit Service a47777
Packit Service a47777
    def test_unicode_to_string_cast(self):
Packit Service a47777
        # Ticket #1240.
Packit Service a47777
        a = np.array([[u'abc', u'\u03a3'],
Packit Service a47777
                      [u'asdf', u'erw']],
Packit Service a47777
                     dtype='U')
Packit Service a47777
        assert_raises(UnicodeEncodeError, np.array, a, 'S4')
Packit Service a47777
Packit Service a47777
    def test_mixed_string_unicode_array_creation(self):
Packit Service a47777
        a = np.array(['1234', u'123'])
Packit Service a47777
        assert_(a.itemsize == 16)
Packit Service a47777
        a = np.array([u'123', '1234'])
Packit Service a47777
        assert_(a.itemsize == 16)
Packit Service a47777
        a = np.array(['1234', u'123', '12345'])
Packit Service a47777
        assert_(a.itemsize == 20)
Packit Service a47777
        a = np.array([u'123', '1234', u'12345'])
Packit Service a47777
        assert_(a.itemsize == 20)
Packit Service a47777
        a = np.array([u'123', '1234', u'1234'])
Packit Service a47777
        assert_(a.itemsize == 16)
Packit Service a47777
Packit Service a47777
    def test_misaligned_objects_segfault(self):
Packit Service a47777
        # Ticket #1198 and #1267
Packit Service a47777
        a1 = np.zeros((10,), dtype='O,c')
Packit Service a47777
        a2 = np.array(['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j'], 'S10')
Packit Service a47777
        a1['f0'] = a2
Packit Service a47777
        repr(a1)
Packit Service a47777
        np.argmax(a1['f0'])
Packit Service a47777
        a1['f0'][1] = "FOO"
Packit Service a47777
        a1['f0'] = "FOO"
Packit Service a47777
        np.array(a1['f0'], dtype='S')
Packit Service a47777
        np.nonzero(a1['f0'])
Packit Service a47777
        a1.sort()
Packit Service a47777
        copy.deepcopy(a1)
Packit Service a47777
Packit Service a47777
    def test_misaligned_scalars_segfault(self):
Packit Service a47777
        # Ticket #1267
Packit Service a47777
        s1 = np.array(('a', 'Foo'), dtype='c,O')
Packit Service a47777
        s2 = np.array(('b', 'Bar'), dtype='c,O')
Packit Service a47777
        s1['f1'] = s2['f1']
Packit Service a47777
        s1['f1'] = 'Baz'
Packit Service a47777
Packit Service a47777
    def test_misaligned_dot_product_objects(self):
Packit Service a47777
        # Ticket #1267
Packit Service a47777
        # This didn't require a fix, but it's worth testing anyway, because
Packit Service a47777
        # it may fail if .dot stops enforcing the arrays to be BEHAVED
Packit Service a47777
        a = np.array([[(1, 'a'), (0, 'a')], [(0, 'a'), (1, 'a')]], dtype='O,c')
Packit Service a47777
        b = np.array([[(4, 'a'), (1, 'a')], [(2, 'a'), (2, 'a')]], dtype='O,c')
Packit Service a47777
        np.dot(a['f0'], b['f0'])
Packit Service a47777
Packit Service a47777
    def test_byteswap_complex_scalar(self):
Packit Service a47777
        # Ticket #1259 and gh-441
Packit Service a47777
        for dtype in [np.dtype('<'+t) for t in np.typecodes['Complex']]:
Packit Service a47777
            z = np.array([2.2-1.1j], dtype)
Packit Service a47777
            x = z[0]  # always native-endian
Packit Service a47777
            y = x.byteswap()
Packit Service a47777
            if x.dtype.byteorder == z.dtype.byteorder:
Packit Service a47777
                # little-endian machine
Packit Service a47777
                assert_equal(x, np.frombuffer(y.tobytes(), dtype=dtype.newbyteorder()))
Packit Service a47777
            else:
Packit Service a47777
                # big-endian machine
Packit Service a47777
                assert_equal(x, np.frombuffer(y.tobytes(), dtype=dtype))
Packit Service a47777
            # double check real and imaginary parts:
Packit Service a47777
            assert_equal(x.real, y.real.byteswap())
Packit Service a47777
            assert_equal(x.imag, y.imag.byteswap())
Packit Service a47777
Packit Service a47777
    def test_structured_arrays_with_objects1(self):
Packit Service a47777
        # Ticket #1299
Packit Service a47777
        stra = 'aaaa'
Packit Service a47777
        strb = 'bbbb'
Packit Service a47777
        x = np.array([[(0, stra), (1, strb)]], 'i8,O')
Packit Service a47777
        x[x.nonzero()] = x.ravel()[:1]
Packit Service a47777
        assert_(x[0, 1] == x[0, 0])
Packit Service a47777
Packit Service a47777
    @dec.skipif(not HAS_REFCOUNT, "python has no sys.getrefcount")
Packit Service a47777
    def test_structured_arrays_with_objects2(self):
Packit Service a47777
        # Ticket #1299 second test
Packit Service a47777
        stra = 'aaaa'
Packit Service a47777
        strb = 'bbbb'
Packit Service a47777
        numb = sys.getrefcount(strb)
Packit Service a47777
        numa = sys.getrefcount(stra)
Packit Service a47777
        x = np.array([[(0, stra), (1, strb)]], 'i8,O')
Packit Service a47777
        x[x.nonzero()] = x.ravel()[:1]
Packit Service a47777
        assert_(sys.getrefcount(strb) == numb)
Packit Service a47777
        assert_(sys.getrefcount(stra) == numa + 2)
Packit Service a47777
Packit Service a47777
    def test_duplicate_title_and_name(self):
Packit Service a47777
        # Ticket #1254
Packit Service a47777
        dtspec = [(('a', 'a'), 'i'), ('b', 'i')]
Packit Service a47777
        assert_raises(ValueError, np.dtype, dtspec)
Packit Service a47777
Packit Service a47777
    def test_signed_integer_division_overflow(self):
Packit Service a47777
        # Ticket #1317.
Packit Service a47777
        def test_type(t):
Packit Service a47777
            min = np.array([np.iinfo(t).min])
Packit Service a47777
            min //= -1
Packit Service a47777
Packit Service a47777
        with np.errstate(divide="ignore"):
Packit Service a47777
            for t in (np.int8, np.int16, np.int32, np.int64, int, np.long):
Packit Service a47777
                test_type(t)
Packit Service a47777
Packit Service a47777
    def test_buffer_hashlib(self):
Packit Service a47777
        try:
Packit Service a47777
            from hashlib import md5
Packit Service a47777
        except ImportError:
Packit Service a47777
            from md5 import new as md5
Packit Service a47777
Packit Service a47777
        x = np.array([1, 2, 3], dtype=np.dtype('
Packit Service a47777
        assert_equal(md5(x).hexdigest(), '2a1dd1e1e59d0a384c26951e316cd7e6')
Packit Service a47777
Packit Service a47777
    def test_0d_string_scalar(self):
Packit Service a47777
        # Bug #1436; the following should succeed
Packit Service a47777
        np.asarray('x', '>c')
Packit Service a47777
Packit Service a47777
    def test_log1p_compiler_shenanigans(self):
Packit Service a47777
        # Check if log1p is behaving on 32 bit intel systems.
Packit Service a47777
        assert_(np.isfinite(np.log1p(np.exp2(-53))))
Packit Service a47777
Packit Service a47777
    def test_fromiter_comparison(self):
Packit Service a47777
        a = np.fromiter(list(range(10)), dtype='b')
Packit Service a47777
        b = np.fromiter(list(range(10)), dtype='B')
Packit Service a47777
        assert_(np.alltrue(a == np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])))
Packit Service a47777
        assert_(np.alltrue(b == np.array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])))
Packit Service a47777
Packit Service a47777
    def test_fromstring_crash(self):
Packit Service a47777
        # Ticket #1345: the following should not cause a crash
Packit Service a47777
        np.fromstring(b'aa, aa, 1.0', sep=',')
Packit Service a47777
Packit Service a47777
    def test_ticket_1539(self):
Packit Service a47777
        dtypes = [x for x in np.typeDict.values()
Packit Service a47777
                  if (issubclass(x, np.number)
Packit Service a47777
                      and not issubclass(x, np.timedelta64))]
Packit Service a47777
        a = np.array([], np.bool_)  # not x[0] because it is unordered
Packit Service a47777
        failures = []
Packit Service a47777
Packit Service a47777
        for x in dtypes:
Packit Service a47777
            b = a.astype(x)
Packit Service a47777
            for y in dtypes:
Packit Service a47777
                c = a.astype(y)
Packit Service a47777
                try:
Packit Service a47777
                    np.dot(b, c)
Packit Service a47777
                except TypeError:
Packit Service a47777
                    failures.append((x, y))
Packit Service a47777
        if failures:
Packit Service a47777
            raise AssertionError("Failures: %r" % failures)
Packit Service a47777
Packit Service a47777
    def test_ticket_1538(self):
Packit Service a47777
        x = np.finfo(np.float32)
Packit Service a47777
        for name in 'eps epsneg max min resolution tiny'.split():
Packit Service a47777
            assert_equal(type(getattr(x, name)), np.float32,
Packit Service a47777
                         err_msg=name)
Packit Service a47777
Packit Service a47777
    def test_ticket_1434(self):
Packit Service a47777
        # Check that the out= argument in var and std has an effect
Packit Service a47777
        data = np.array(((1, 2, 3), (4, 5, 6), (7, 8, 9)))
Packit Service a47777
        out = np.zeros((3,))
Packit Service a47777
Packit Service a47777
        ret = data.var(axis=1, out=out)
Packit Service a47777
        assert_(ret is out)
Packit Service a47777
        assert_array_equal(ret, data.var(axis=1))
Packit Service a47777
Packit Service a47777
        ret = data.std(axis=1, out=out)
Packit Service a47777
        assert_(ret is out)
Packit Service a47777
        assert_array_equal(ret, data.std(axis=1))
Packit Service a47777
Packit Service a47777
    def test_complex_nan_maximum(self):
Packit Service a47777
        cnan = complex(0, np.nan)
Packit Service a47777
        assert_equal(np.maximum(1, cnan), cnan)
Packit Service a47777
Packit Service a47777
    def test_subclass_int_tuple_assignment(self):
Packit Service a47777
        # ticket #1563
Packit Service a47777
        class Subclass(np.ndarray):
Packit Service a47777
            def __new__(cls, i):
Packit Service a47777
                return np.ones((i,)).view(cls)
Packit Service a47777
Packit Service a47777
        x = Subclass(5)
Packit Service a47777
        x[(0,)] = 2  # shouldn't raise an exception
Packit Service a47777
        assert_equal(x[0], 2)
Packit Service a47777
Packit Service a47777
    def test_ufunc_no_unnecessary_views(self):
Packit Service a47777
        # ticket #1548
Packit Service a47777
        class Subclass(np.ndarray):
Packit Service a47777
            pass
Packit Service a47777
        x = np.array([1, 2, 3]).view(Subclass)
Packit Service a47777
        y = np.add(x, x, x)
Packit Service a47777
        assert_equal(id(x), id(y))
Packit Service a47777
Packit Service a47777
    @dec.skipif(not HAS_REFCOUNT, "python has no sys.getrefcount")
Packit Service a47777
    def test_take_refcount(self):
Packit Service a47777
        # ticket #939
Packit Service a47777
        a = np.arange(16, dtype=float)
Packit Service a47777
        a.shape = (4, 4)
Packit Service a47777
        lut = np.ones((5 + 3, 4), float)
Packit Service a47777
        rgba = np.empty(shape=a.shape + (4,), dtype=lut.dtype)
Packit Service a47777
        c1 = sys.getrefcount(rgba)
Packit Service a47777
        try:
Packit Service a47777
            lut.take(a, axis=0, mode='clip', out=rgba)
Packit Service a47777
        except TypeError:
Packit Service a47777
            pass
Packit Service a47777
        c2 = sys.getrefcount(rgba)
Packit Service a47777
        assert_equal(c1, c2)
Packit Service a47777
Packit Service a47777
    def test_fromfile_tofile_seeks(self):
Packit Service a47777
        # On Python 3, tofile/fromfile used to get (#1610) the Python
Packit Service a47777
        # file handle out of sync
Packit Service a47777
        f0 = tempfile.NamedTemporaryFile()
Packit Service a47777
        f = f0.file
Packit Service a47777
        f.write(np.arange(255, dtype='u1').tobytes())
Packit Service a47777
Packit Service a47777
        f.seek(20)
Packit Service a47777
        ret = np.fromfile(f, count=4, dtype='u1')
Packit Service a47777
        assert_equal(ret, np.array([20, 21, 22, 23], dtype='u1'))
Packit Service a47777
        assert_equal(f.tell(), 24)
Packit Service a47777
Packit Service a47777
        f.seek(40)
Packit Service a47777
        np.array([1, 2, 3], dtype='u1').tofile(f)
Packit Service a47777
        assert_equal(f.tell(), 43)
Packit Service a47777
Packit Service a47777
        f.seek(40)
Packit Service a47777
        data = f.read(3)
Packit Service a47777
        assert_equal(data, b"\x01\x02\x03")
Packit Service a47777
Packit Service a47777
        f.seek(80)
Packit Service a47777
        f.read(4)
Packit Service a47777
        data = np.fromfile(f, dtype='u1', count=4)
Packit Service a47777
        assert_equal(data, np.array([84, 85, 86, 87], dtype='u1'))
Packit Service a47777
Packit Service a47777
        f.close()
Packit Service a47777
Packit Service a47777
    def test_complex_scalar_warning(self):
Packit Service a47777
        for tp in [np.csingle, np.cdouble, np.clongdouble]:
Packit Service a47777
            x = tp(1+2j)
Packit Service a47777
            assert_warns(np.ComplexWarning, float, x)
Packit Service a47777
            with suppress_warnings() as sup:
Packit Service a47777
                sup.filter(np.ComplexWarning)
Packit Service a47777
                assert_equal(float(x), float(x.real))
Packit Service a47777
Packit Service a47777
    def test_complex_scalar_complex_cast(self):
Packit Service a47777
        for tp in [np.csingle, np.cdouble, np.clongdouble]:
Packit Service a47777
            x = tp(1+2j)
Packit Service a47777
            assert_equal(complex(x), 1+2j)
Packit Service a47777
Packit Service a47777
    def test_complex_boolean_cast(self):
Packit Service a47777
        # Ticket #2218
Packit Service a47777
        for tp in [np.csingle, np.cdouble, np.clongdouble]:
Packit Service a47777
            x = np.array([0, 0+0.5j, 0.5+0j], dtype=tp)
Packit Service a47777
            assert_equal(x.astype(bool), np.array([0, 1, 1], dtype=bool))
Packit Service a47777
            assert_(np.any(x))
Packit Service a47777
            assert_(np.all(x[1:]))
Packit Service a47777
Packit Service a47777
    def test_uint_int_conversion(self):
Packit Service a47777
        x = 2**64 - 1
Packit Service a47777
        assert_equal(int(np.uint64(x)), x)
Packit Service a47777
Packit Service a47777
    def test_duplicate_field_names_assign(self):
Packit Service a47777
        ra = np.fromiter(((i*3, i*2) for i in range(10)), dtype='i8,f8')
Packit Service a47777
        ra.dtype.names = ('f1', 'f2')
Packit Service a47777
        repr(ra)  # should not cause a segmentation fault
Packit Service a47777
        assert_raises(ValueError, setattr, ra.dtype, 'names', ('f1', 'f1'))
Packit Service a47777
Packit Service a47777
    def test_eq_string_and_object_array(self):
Packit Service a47777
        # From e-mail thread "__eq__ with str and object" (Keith Goodman)
Packit Service a47777
        a1 = np.array(['a', 'b'], dtype=object)
Packit Service a47777
        a2 = np.array(['a', 'c'])
Packit Service a47777
        assert_array_equal(a1 == a2, [True, False])
Packit Service a47777
        assert_array_equal(a2 == a1, [True, False])
Packit Service a47777
Packit Service a47777
    def test_nonzero_byteswap(self):
Packit Service a47777
        a = np.array([0x80000000, 0x00000080, 0], dtype=np.uint32)
Packit Service a47777
        a.dtype = np.float32
Packit Service a47777
        assert_equal(a.nonzero()[0], [1])
Packit Service a47777
        a = a.byteswap().newbyteorder()
Packit Service a47777
        assert_equal(a.nonzero()[0], [1])  # [0] if nonzero() ignores swap
Packit Service a47777
Packit Service a47777
    def test_find_common_type_boolean(self):
Packit Service a47777
        # Ticket #1695
Packit Service a47777
        assert_(np.find_common_type([], ['?', '?']) == '?')
Packit Service a47777
Packit Service a47777
    def test_empty_mul(self):
Packit Service a47777
        a = np.array([1.])
Packit Service a47777
        a[1:1] *= 2
Packit Service a47777
        assert_equal(a, [1.])
Packit Service a47777
Packit Service a47777
    def test_array_side_effect(self):
Packit Service a47777
        # The second use of itemsize was throwing an exception because in
Packit Service a47777
        # ctors.c, discover_itemsize was calling PyObject_Length without
Packit Service a47777
        # checking the return code.  This failed to get the length of the
Packit Service a47777
        # number 2, and the exception hung around until something checked
Packit Service a47777
        # PyErr_Occurred() and returned an error.
Packit Service a47777
        assert_equal(np.dtype('S10').itemsize, 10)
Packit Service a47777
        np.array([['abc', 2], ['long   ', '0123456789']], dtype=np.string_)
Packit Service a47777
        assert_equal(np.dtype('S10').itemsize, 10)
Packit Service a47777
Packit Service a47777
    def test_any_float(self):
Packit Service a47777
        # all and any for floats
Packit Service a47777
        a = np.array([0.1, 0.9])
Packit Service a47777
        assert_(np.any(a))
Packit Service a47777
        assert_(np.all(a))
Packit Service a47777
Packit Service a47777
    def test_large_float_sum(self):
Packit Service a47777
        a = np.arange(10000, dtype='f')
Packit Service a47777
        assert_equal(a.sum(dtype='d'), a.astype('d').sum())
Packit Service a47777
Packit Service a47777
    def test_ufunc_casting_out(self):
Packit Service a47777
        a = np.array(1.0, dtype=np.float32)
Packit Service a47777
        b = np.array(1.0, dtype=np.float64)
Packit Service a47777
        c = np.array(1.0, dtype=np.float32)
Packit Service a47777
        np.add(a, b, out=c)
Packit Service a47777
        assert_equal(c, 2.0)
Packit Service a47777
Packit Service a47777
    def test_array_scalar_contiguous(self):
Packit Service a47777
        # Array scalars are both C and Fortran contiguous
Packit Service a47777
        assert_(np.array(1.0).flags.c_contiguous)
Packit Service a47777
        assert_(np.array(1.0).flags.f_contiguous)
Packit Service a47777
        assert_(np.array(np.float32(1.0)).flags.c_contiguous)
Packit Service a47777
        assert_(np.array(np.float32(1.0)).flags.f_contiguous)
Packit Service a47777
Packit Service a47777
    def test_squeeze_contiguous(self):
Packit Service a47777
        # Similar to GitHub issue #387
Packit Service a47777
        a = np.zeros((1, 2)).squeeze()
Packit Service a47777
        b = np.zeros((2, 2, 2), order='F')[:, :, ::2].squeeze()
Packit Service a47777
        assert_(a.flags.c_contiguous)
Packit Service a47777
        assert_(a.flags.f_contiguous)
Packit Service a47777
        assert_(b.flags.f_contiguous)
Packit Service a47777
Packit Service a47777
    def test_reduce_contiguous(self):
Packit Service a47777
        # GitHub issue #387
Packit Service a47777
        a = np.add.reduce(np.zeros((2, 1, 2)), (0, 1))
Packit Service a47777
        b = np.add.reduce(np.zeros((2, 1, 2)), 1)
Packit Service a47777
        assert_(a.flags.c_contiguous)
Packit Service a47777
        assert_(a.flags.f_contiguous)
Packit Service a47777
        assert_(b.flags.c_contiguous)
Packit Service a47777
Packit Service a47777
    def test_object_array_self_reference(self):
Packit Service a47777
        # Object arrays with references to themselves can cause problems
Packit Service a47777
        a = np.array(0, dtype=object)
Packit Service a47777
        a[()] = a
Packit Service a47777
        assert_raises(RecursionError, int, a)
Packit Service a47777
        assert_raises(RecursionError, long, a)
Packit Service a47777
        assert_raises(RecursionError, float, a)
Packit Service a47777
        if sys.version_info.major == 2:
Packit Service a47777
            # in python 3, this falls back on operator.index, which fails on
Packit Service a47777
            # on dtype=object
Packit Service a47777
            assert_raises(RecursionError, oct, a)
Packit Service a47777
            assert_raises(RecursionError, hex, a)
Packit Service a47777
        a[()] = None
Packit Service a47777
Packit Service a47777
    def test_object_array_circular_reference(self):
Packit Service a47777
        # Test the same for a circular reference.
Packit Service a47777
        a = np.array(0, dtype=object)
Packit Service a47777
        b = np.array(0, dtype=object)
Packit Service a47777
        a[()] = b
Packit Service a47777
        b[()] = a
Packit Service a47777
        assert_raises(RecursionError, int, a)
Packit Service a47777
        # NumPy has no tp_traverse currently, so circular references
Packit Service a47777
        # cannot be detected. So resolve it:
Packit Service a47777
        a[()] = None
Packit Service a47777
Packit Service a47777
        # This was causing a to become like the above
Packit Service a47777
        a = np.array(0, dtype=object)
Packit Service a47777
        a[...] += 1
Packit Service a47777
        assert_equal(a, 1)
Packit Service a47777
Packit Service a47777
    def test_object_array_nested(self):
Packit Service a47777
        # but is fine with a reference to a different array
Packit Service a47777
        a = np.array(0, dtype=object)
Packit Service a47777
        b = np.array(0, dtype=object)
Packit Service a47777
        a[()] = b
Packit Service a47777
        assert_equal(int(a), int(0))
Packit Service a47777
        assert_equal(long(a), long(0))
Packit Service a47777
        assert_equal(float(a), float(0))
Packit Service a47777
        if sys.version_info.major == 2:
Packit Service a47777
            # in python 3, this falls back on operator.index, which fails on
Packit Service a47777
            # on dtype=object
Packit Service a47777
            assert_equal(oct(a), oct(0))
Packit Service a47777
            assert_equal(hex(a), hex(0))
Packit Service a47777
Packit Service a47777
Packit Service a47777
    def test_object_array_self_copy(self):
Packit Service a47777
        # An object array being copied into itself DECREF'ed before INCREF'ing
Packit Service a47777
        # causing segmentation faults (gh-3787)
Packit Service a47777
        a = np.array(object(), dtype=object)
Packit Service a47777
        np.copyto(a, a)
Packit Service a47777
        if HAS_REFCOUNT:
Packit Service a47777
            assert_(sys.getrefcount(a[()]) == 2)
Packit Service a47777
        a[()].__class__  # will segfault if object was deleted
Packit Service a47777
Packit Service a47777
    def test_zerosize_accumulate(self):
Packit Service a47777
        "Ticket #1733"
Packit Service a47777
        x = np.array([[42, 0]], dtype=np.uint32)
Packit Service a47777
        assert_equal(np.add.accumulate(x[:-1, 0]), [])
Packit Service a47777
Packit Service a47777
    def test_objectarray_setfield(self):
Packit Service a47777
        # Setfield should not overwrite Object fields with non-Object data
Packit Service a47777
        x = np.array([1, 2, 3], dtype=object)
Packit Service a47777
        assert_raises(TypeError, x.setfield, 4, np.int32, 0)
Packit Service a47777
Packit Service a47777
    def test_setting_rank0_string(self):
Packit Service a47777
        "Ticket #1736"
Packit Service a47777
        s1 = b"hello1"
Packit Service a47777
        s2 = b"hello2"
Packit Service a47777
        a = np.zeros((), dtype="S10")
Packit Service a47777
        a[()] = s1
Packit Service a47777
        assert_equal(a, np.array(s1))
Packit Service a47777
        a[()] = np.array(s2)
Packit Service a47777
        assert_equal(a, np.array(s2))
Packit Service a47777
Packit Service a47777
        a = np.zeros((), dtype='f4')
Packit Service a47777
        a[()] = 3
Packit Service a47777
        assert_equal(a, np.array(3))
Packit Service a47777
        a[()] = np.array(4)
Packit Service a47777
        assert_equal(a, np.array(4))
Packit Service a47777
Packit Service a47777
    def test_string_astype(self):
Packit Service a47777
        "Ticket #1748"
Packit Service a47777
        s1 = b'black'
Packit Service a47777
        s2 = b'white'
Packit Service a47777
        s3 = b'other'
Packit Service a47777
        a = np.array([[s1], [s2], [s3]])
Packit Service a47777
        assert_equal(a.dtype, np.dtype('S5'))
Packit Service a47777
        b = a.astype(np.dtype('S0'))
Packit Service a47777
        assert_equal(b.dtype, np.dtype('S5'))
Packit Service a47777
Packit Service a47777
    def test_ticket_1756(self):
Packit Service a47777
        # Ticket #1756
Packit Service a47777
        s = b'0123456789abcdef'
Packit Service a47777
        a = np.array([s]*5)
Packit Service a47777
        for i in range(1, 17):
Packit Service a47777
            a1 = np.array(a, "|S%d" % i)
Packit Service a47777
            a2 = np.array([s[:i]]*5)
Packit Service a47777
            assert_equal(a1, a2)
Packit Service a47777
Packit Service a47777
    def test_fields_strides(self):
Packit Service a47777
        "gh-2355"
Packit Service a47777
        r = np.frombuffer(b'abcdefghijklmnop'*4*3, dtype='i4,(2,3)u2')
Packit Service a47777
        assert_equal(r[0:3:2]['f1'], r['f1'][0:3:2])
Packit Service a47777
        assert_equal(r[0:3:2]['f1'][0], r[0:3:2][0]['f1'])
Packit Service a47777
        assert_equal(r[0:3:2]['f1'][0][()], r[0:3:2][0]['f1'][()])
Packit Service a47777
        assert_equal(r[0:3:2]['f1'][0].strides, r[0:3:2][0]['f1'].strides)
Packit Service a47777
Packit Service a47777
    def test_alignment_update(self):
Packit Service a47777
        # Check that alignment flag is updated on stride setting
Packit Service a47777
        a = np.arange(10)
Packit Service a47777
        assert_(a.flags.aligned)
Packit Service a47777
        a.strides = 3
Packit Service a47777
        assert_(not a.flags.aligned)
Packit Service a47777
Packit Service a47777
    def test_ticket_1770(self):
Packit Service a47777
        "Should not segfault on python 3k"
Packit Service a47777
        import numpy as np
Packit Service a47777
        try:
Packit Service a47777
            a = np.zeros((1,), dtype=[('f1', 'f')])
Packit Service a47777
            a['f1'] = 1
Packit Service a47777
            a['f2'] = 1
Packit Service a47777
        except ValueError:
Packit Service a47777
            pass
Packit Service a47777
        except Exception:
Packit Service a47777
            raise AssertionError
Packit Service a47777
Packit Service a47777
    def test_ticket_1608(self):
Packit Service a47777
        "x.flat shouldn't modify data"
Packit Service a47777
        x = np.array([[1, 2], [3, 4]]).T
Packit Service a47777
        np.array(x.flat)
Packit Service a47777
        assert_equal(x, [[1, 3], [2, 4]])
Packit Service a47777
Packit Service a47777
    def test_pickle_string_overwrite(self):
Packit Service a47777
        import re
Packit Service a47777
Packit Service a47777
        data = np.array([1], dtype='b')
Packit Service a47777
        blob = pickle.dumps(data, protocol=1)
Packit Service a47777
        data = pickle.loads(blob)
Packit Service a47777
Packit Service a47777
        # Check that loads does not clobber interned strings
Packit Service a47777
        s = re.sub("a(.)", "\x01\\1", "a_")
Packit Service a47777
        assert_equal(s[0], "\x01")
Packit Service a47777
        data[0] = 0xbb
Packit Service a47777
        s = re.sub("a(.)", "\x01\\1", "a_")
Packit Service a47777
        assert_equal(s[0], "\x01")
Packit Service a47777
Packit Service a47777
    def test_pickle_bytes_overwrite(self):
Packit Service a47777
        if sys.version_info[0] >= 3:
Packit Service a47777
            data = np.array([1], dtype='b')
Packit Service a47777
            data = pickle.loads(pickle.dumps(data))
Packit Service a47777
            data[0] = 0xdd
Packit Service a47777
            bytestring = "\x01  ".encode('ascii')
Packit Service a47777
            assert_equal(bytestring[0:1], '\x01'.encode('ascii'))
Packit Service a47777
Packit Service a47777
    def test_pickle_py2_array_latin1_hack(self):
Packit Service a47777
        # Check that unpickling hacks in Py3 that support
Packit Service a47777
        # encoding='latin1' work correctly.
Packit Service a47777
Packit Service a47777
        # Python2 output for pickle.dumps(numpy.array([129], dtype='b'))
Packit Service a47777
        data = (b"cnumpy.core.multiarray\n_reconstruct\np0\n(cnumpy\nndarray\np1\n(I0\n"
Packit Service a47777
                b"tp2\nS'b'\np3\ntp4\nRp5\n(I1\n(I1\ntp6\ncnumpy\ndtype\np7\n(S'i1'\np8\n"
Packit Service a47777
                b"I0\nI1\ntp9\nRp10\n(I3\nS'|'\np11\nNNNI-1\nI-1\nI0\ntp12\nbI00\nS'\\x81'\n"
Packit Service a47777
                b"p13\ntp14\nb.")
Packit Service a47777
        if sys.version_info[0] >= 3:
Packit Service a47777
            # This should work:
Packit Service a47777
            result = pickle.loads(data, encoding='latin1')
Packit Service a47777
            assert_array_equal(result, np.array([129], dtype='b'))
Packit Service a47777
            # Should not segfault:
Packit Service a47777
            assert_raises(Exception, pickle.loads, data, encoding='koi8-r')
Packit Service a47777
Packit Service a47777
    def test_pickle_py2_scalar_latin1_hack(self):
Packit Service a47777
        # Check that scalar unpickling hack in Py3 that supports
Packit Service a47777
        # encoding='latin1' work correctly.
Packit Service a47777
Packit Service a47777
        # Python2 output for pickle.dumps(...)
Packit Service a47777
        datas = [
Packit Service a47777
            # (original, python2_pickle, koi8r_validity)
Packit Service a47777
            (np.unicode_('\u6bd2'),
Packit Service a47777
             (b"cnumpy.core.multiarray\nscalar\np0\n(cnumpy\ndtype\np1\n"
Packit Service a47777
              b"(S'U1'\np2\nI0\nI1\ntp3\nRp4\n(I3\nS'<'\np5\nNNNI4\nI4\nI0\n"
Packit Service a47777
              b"tp6\nbS'\\xd2k\\x00\\x00'\np7\ntp8\nRp9\n."),
Packit Service a47777
             'invalid'),
Packit Service a47777
Packit Service a47777
            (np.float64(9e123),
Packit Service a47777
             (b"cnumpy.core.multiarray\nscalar\np0\n(cnumpy\ndtype\np1\n(S'f8'\n"
Packit Service a47777
              b"p2\nI0\nI1\ntp3\nRp4\n(I3\nS'<'\np5\nNNNI-1\nI-1\nI0\ntp6\n"
Packit Service a47777
              b"bS'O\\x81\\xb7Z\\xaa:\\xabY'\np7\ntp8\nRp9\n."),
Packit Service a47777
             'invalid'),
Packit Service a47777
Packit Service a47777
            (np.bytes_(b'\x9c'),  # different 8-bit code point in KOI8-R vs latin1
Packit Service a47777
             (b"cnumpy.core.multiarray\nscalar\np0\n(cnumpy\ndtype\np1\n(S'S1'\np2\n"
Packit Service a47777
              b"I0\nI1\ntp3\nRp4\n(I3\nS'|'\np5\nNNNI1\nI1\nI0\ntp6\nbS'\\x9c'\np7\n"
Packit Service a47777
              b"tp8\nRp9\n."),
Packit Service a47777
             'different'),
Packit Service a47777
        ]
Packit Service a47777
        if sys.version_info[0] >= 3:
Packit Service a47777
            for original, data, koi8r_validity in datas:
Packit Service a47777
                result = pickle.loads(data, encoding='latin1')
Packit Service a47777
                assert_equal(result, original)
Packit Service a47777
Packit Service a47777
                # Decoding under non-latin1 encoding (e.g.) KOI8-R can
Packit Service a47777
                # produce bad results, but should not segfault.
Packit Service a47777
                if koi8r_validity == 'different':
Packit Service a47777
                    # Unicode code points happen to lie within latin1,
Packit Service a47777
                    # but are different in koi8-r, resulting to silent
Packit Service a47777
                    # bogus results
Packit Service a47777
                    result = pickle.loads(data, encoding='koi8-r')
Packit Service a47777
                    assert_(result != original)
Packit Service a47777
                elif koi8r_validity == 'invalid':
Packit Service a47777
                    # Unicode code points outside latin1, so results
Packit Service a47777
                    # to an encoding exception
Packit Service a47777
                    assert_raises(ValueError, pickle.loads, data, encoding='koi8-r')
Packit Service a47777
                else:
Packit Service a47777
                    raise ValueError(koi8r_validity)
Packit Service a47777
Packit Service a47777
    def test_structured_type_to_object(self):
Packit Service a47777
        a_rec = np.array([(0, 1), (3, 2)], dtype='i4,i8')
Packit Service a47777
        a_obj = np.empty((2,), dtype=object)
Packit Service a47777
        a_obj[0] = (0, 1)
Packit Service a47777
        a_obj[1] = (3, 2)
Packit Service a47777
        # astype records -> object
Packit Service a47777
        assert_equal(a_rec.astype(object), a_obj)
Packit Service a47777
        # '=' records -> object
Packit Service a47777
        b = np.empty_like(a_obj)
Packit Service a47777
        b[...] = a_rec
Packit Service a47777
        assert_equal(b, a_obj)
Packit Service a47777
        # '=' object -> records
Packit Service a47777
        b = np.empty_like(a_rec)
Packit Service a47777
        b[...] = a_obj
Packit Service a47777
        assert_equal(b, a_rec)
Packit Service a47777
Packit Service a47777
    def test_assign_obj_listoflists(self):
Packit Service a47777
        # Ticket # 1870
Packit Service a47777
        # The inner list should get assigned to the object elements
Packit Service a47777
        a = np.zeros(4, dtype=object)
Packit Service a47777
        b = a.copy()
Packit Service a47777
        a[0] = [1]
Packit Service a47777
        a[1] = [2]
Packit Service a47777
        a[2] = [3]
Packit Service a47777
        a[3] = [4]
Packit Service a47777
        b[...] = [[1], [2], [3], [4]]
Packit Service a47777
        assert_equal(a, b)
Packit Service a47777
        # The first dimension should get broadcast
Packit Service a47777
        a = np.zeros((2, 2), dtype=object)
Packit Service a47777
        a[...] = [[1, 2]]
Packit Service a47777
        assert_equal(a, [[1, 2], [1, 2]])
Packit Service a47777
Packit Service a47777
    def test_memoryleak(self):
Packit Service a47777
        # Ticket #1917 - ensure that array data doesn't leak
Packit Service a47777
        for i in range(1000):
Packit Service a47777
            # 100MB times 1000 would give 100GB of memory usage if it leaks
Packit Service a47777
            a = np.empty((100000000,), dtype='i1')
Packit Service a47777
            del a
Packit Service a47777
Packit Service a47777
    @dec.skipif(not HAS_REFCOUNT, "python has no sys.getrefcount")
Packit Service a47777
    def test_ufunc_reduce_memoryleak(self):
Packit Service a47777
        a = np.arange(6)
Packit Service a47777
        acnt = sys.getrefcount(a)
Packit Service a47777
        np.add.reduce(a)
Packit Service a47777
        assert_equal(sys.getrefcount(a), acnt)
Packit Service a47777
Packit Service a47777
    def test_search_sorted_invalid_arguments(self):
Packit Service a47777
        # Ticket #2021, should not segfault.
Packit Service a47777
        x = np.arange(0, 4, dtype='datetime64[D]')
Packit Service a47777
        assert_raises(TypeError, x.searchsorted, 1)
Packit Service a47777
Packit Service a47777
    def test_string_truncation(self):
Packit Service a47777
        # Ticket #1990 - Data can be truncated in creation of an array from a
Packit Service a47777
        # mixed sequence of numeric values and strings
Packit Service a47777
        for val in [True, 1234, 123.4, complex(1, 234)]:
Packit Service a47777
            for tostr in [asunicode, asbytes]:
Packit Service a47777
                b = np.array([val, tostr('xx')])
Packit Service a47777
                assert_equal(tostr(b[0]), tostr(val))
Packit Service a47777
                b = np.array([tostr('xx'), val])
Packit Service a47777
                assert_equal(tostr(b[1]), tostr(val))
Packit Service a47777
Packit Service a47777
                # test also with longer strings
Packit Service a47777
                b = np.array([val, tostr('xxxxxxxxxx')])
Packit Service a47777
                assert_equal(tostr(b[0]), tostr(val))
Packit Service a47777
                b = np.array([tostr('xxxxxxxxxx'), val])
Packit Service a47777
                assert_equal(tostr(b[1]), tostr(val))
Packit Service a47777
Packit Service a47777
    def test_string_truncation_ucs2(self):
Packit Service a47777
        # Ticket #2081. Python compiled with two byte unicode
Packit Service a47777
        # can lead to truncation if itemsize is not properly
Packit Service a47777
        # adjusted for NumPy's four byte unicode.
Packit Service a47777
        if sys.version_info[0] >= 3:
Packit Service a47777
            a = np.array(['abcd'])
Packit Service a47777
        else:
Packit Service a47777
            a = np.array([u'abcd'])
Packit Service a47777
        assert_equal(a.dtype.itemsize, 16)
Packit Service a47777
Packit Service a47777
    def test_unique_stable(self):
Packit Service a47777
        # Ticket #2063 must always choose stable sort for argsort to
Packit Service a47777
        # get consistent results
Packit Service a47777
        v = np.array(([0]*5 + [1]*6 + [2]*6)*4)
Packit Service a47777
        res = np.unique(v, return_index=True)
Packit Service a47777
        tgt = (np.array([0, 1, 2]), np.array([ 0,  5, 11]))
Packit Service a47777
        assert_equal(res, tgt)
Packit Service a47777
Packit Service a47777
    def test_unicode_alloc_dealloc_match(self):
Packit Service a47777
        # Ticket #1578, the mismatch only showed up when running
Packit Service a47777
        # python-debug for python versions >= 2.7, and then as
Packit Service a47777
        # a core dump and error message.
Packit Service a47777
        a = np.array(['abc'], dtype=np.unicode)[0]
Packit Service a47777
        del a
Packit Service a47777
Packit Service a47777
    def test_refcount_error_in_clip(self):
Packit Service a47777
        # Ticket #1588
Packit Service a47777
        a = np.zeros((2,), dtype='>i2').clip(min=0)
Packit Service a47777
        x = a + a
Packit Service a47777
        # This used to segfault:
Packit Service a47777
        y = str(x)
Packit Service a47777
        # Check the final string:
Packit Service a47777
        assert_(y == "[0 0]")
Packit Service a47777
Packit Service a47777
    def test_searchsorted_wrong_dtype(self):
Packit Service a47777
        # Ticket #2189, it used to segfault, so we check that it raises the
Packit Service a47777
        # proper exception.
Packit Service a47777
        a = np.array([('a', 1)], dtype='S1, int')
Packit Service a47777
        assert_raises(TypeError, np.searchsorted, a, 1.2)
Packit Service a47777
        # Ticket #2066, similar problem:
Packit Service a47777
        dtype = np.format_parser(['i4', 'i4'], [], [])
Packit Service a47777
        a = np.recarray((2, ), dtype)
Packit Service a47777
        assert_raises(TypeError, np.searchsorted, a, 1)
Packit Service a47777
Packit Service a47777
    def test_complex64_alignment(self):
Packit Service a47777
        # Issue gh-2668 (trac 2076), segfault on sparc due to misalignment
Packit Service a47777
        dtt = np.complex64
Packit Service a47777
        arr = np.arange(10, dtype=dtt)
Packit Service a47777
        # 2D array
Packit Service a47777
        arr2 = np.reshape(arr, (2, 5))
Packit Service a47777
        # Fortran write followed by (C or F) read caused bus error
Packit Service a47777
        data_str = arr2.tobytes('F')
Packit Service a47777
        data_back = np.ndarray(arr2.shape,
Packit Service a47777
                              arr2.dtype,
Packit Service a47777
                              buffer=data_str,
Packit Service a47777
                              order='F')
Packit Service a47777
        assert_array_equal(arr2, data_back)
Packit Service a47777
Packit Service a47777
    def test_structured_count_nonzero(self):
Packit Service a47777
        arr = np.array([0, 1]).astype('i4, (2)i4')[:1]
Packit Service a47777
        count = np.count_nonzero(arr)
Packit Service a47777
        assert_equal(count, 0)
Packit Service a47777
Packit Service a47777
    def test_copymodule_preserves_f_contiguity(self):
Packit Service a47777
        a = np.empty((2, 2), order='F')
Packit Service a47777
        b = copy.copy(a)
Packit Service a47777
        c = copy.deepcopy(a)
Packit Service a47777
        assert_(b.flags.fortran)
Packit Service a47777
        assert_(b.flags.f_contiguous)
Packit Service a47777
        assert_(c.flags.fortran)
Packit Service a47777
        assert_(c.flags.f_contiguous)
Packit Service a47777
Packit Service a47777
    def test_fortran_order_buffer(self):
Packit Service a47777
        import numpy as np
Packit Service a47777
        a = np.array([['Hello', 'Foob']], dtype='U5', order='F')
Packit Service a47777
        arr = np.ndarray(shape=[1, 2, 5], dtype='U1', buffer=a)
Packit Service a47777
        arr2 = np.array([[[u'H', u'e', u'l', u'l', u'o'],
Packit Service a47777
                          [u'F', u'o', u'o', u'b', u'']]])
Packit Service a47777
        assert_array_equal(arr, arr2)
Packit Service a47777
Packit Service a47777
    def test_assign_from_sequence_error(self):
Packit Service a47777
        # Ticket #4024.
Packit Service a47777
        arr = np.array([1, 2, 3])
Packit Service a47777
        assert_raises(ValueError, arr.__setitem__, slice(None), [9, 9])
Packit Service a47777
        arr.__setitem__(slice(None), [9])
Packit Service a47777
        assert_equal(arr, [9, 9, 9])
Packit Service a47777
Packit Service a47777
    def test_format_on_flex_array_element(self):
Packit Service a47777
        # Ticket #4369.
Packit Service a47777
        dt = np.dtype([('date', '
Packit Service a47777
        arr = np.array([('2000-01-01', 1)], dt)
Packit Service a47777
        formatted = '{0}'.format(arr[0])
Packit Service a47777
        assert_equal(formatted, str(arr[0]))
Packit Service a47777
Packit Service a47777
    def test_deepcopy_on_0d_array(self):
Packit Service a47777
        # Ticket #3311.
Packit Service a47777
        arr = np.array(3)
Packit Service a47777
        arr_cp = copy.deepcopy(arr)
Packit Service a47777
Packit Service a47777
        assert_equal(arr, arr_cp)
Packit Service a47777
        assert_equal(arr.shape, arr_cp.shape)
Packit Service a47777
        assert_equal(int(arr), int(arr_cp))
Packit Service a47777
        assert_(arr is not arr_cp)
Packit Service a47777
        assert_(isinstance(arr_cp, type(arr)))
Packit Service a47777
Packit Service a47777
    def test_deepcopy_F_order_object_array(self):
Packit Service a47777
        # Ticket #6456.
Packit Service a47777
        a = {'a': 1}
Packit Service a47777
        b = {'b': 2}
Packit Service a47777
        arr = np.array([[a, b], [a, b]], order='F')
Packit Service a47777
        arr_cp = copy.deepcopy(arr)
Packit Service a47777
Packit Service a47777
        assert_equal(arr, arr_cp)
Packit Service a47777
        assert_(arr is not arr_cp)
Packit Service a47777
        # Ensure that we have actually copied the item.
Packit Service a47777
        assert_(arr[0, 1] is not arr_cp[1, 1])
Packit Service a47777
        # Ensure we are allowed to have references to the same object.
Packit Service a47777
        assert_(arr[0, 1] is arr[1, 1])
Packit Service a47777
        # Check the references hold for the copied objects.
Packit Service a47777
        assert_(arr_cp[0, 1] is arr_cp[1, 1])
Packit Service a47777
Packit Service a47777
    def test_deepcopy_empty_object_array(self):
Packit Service a47777
        # Ticket #8536.
Packit Service a47777
        # Deepcopy should succeed
Packit Service a47777
        a = np.array([], dtype=object)
Packit Service a47777
        b = copy.deepcopy(a)
Packit Service a47777
        assert_(a.shape == b.shape)
Packit Service a47777
Packit Service a47777
    def test_bool_subscript_crash(self):
Packit Service a47777
        # gh-4494
Packit Service a47777
        c = np.rec.array([(1, 2, 3), (4, 5, 6)])
Packit Service a47777
        masked = c[np.array([True, False])]
Packit Service a47777
        base = masked.base
Packit Service a47777
        del masked, c
Packit Service a47777
        base.dtype
Packit Service a47777
Packit Service a47777
    def test_richcompare_crash(self):
Packit Service a47777
        # gh-4613
Packit Service a47777
        import operator as op
Packit Service a47777
Packit Service a47777
        # dummy class where __array__ throws exception
Packit Service a47777
        class Foo(object):
Packit Service a47777
            __array_priority__ = 1002
Packit Service a47777
Packit Service a47777
            def __array__(self, *args, **kwargs):
Packit Service a47777
                raise Exception()
Packit Service a47777
Packit Service a47777
        rhs = Foo()
Packit Service a47777
        lhs = np.array(1)
Packit Service a47777
        for f in [op.lt, op.le, op.gt, op.ge]:
Packit Service a47777
            if sys.version_info[0] >= 3:
Packit Service a47777
                assert_raises(TypeError, f, lhs, rhs)
Packit Service a47777
            elif not sys.py3kwarning:
Packit Service a47777
                # With -3 switch in python 2, DeprecationWarning is raised
Packit Service a47777
                # which we are not interested in
Packit Service a47777
                f(lhs, rhs)
Packit Service a47777
        assert_(not op.eq(lhs, rhs))
Packit Service a47777
        assert_(op.ne(lhs, rhs))
Packit Service a47777
Packit Service a47777
    def test_richcompare_scalar_and_subclass(self):
Packit Service a47777
        # gh-4709
Packit Service a47777
        class Foo(np.ndarray):
Packit Service a47777
            def __eq__(self, other):
Packit Service a47777
                return "OK"
Packit Service a47777
Packit Service a47777
        x = np.array([1, 2, 3]).view(Foo)
Packit Service a47777
        assert_equal(10 == x, "OK")
Packit Service a47777
        assert_equal(np.int32(10) == x, "OK")
Packit Service a47777
        assert_equal(np.array([10]) == x, "OK")
Packit Service a47777
Packit Service a47777
    def test_pickle_empty_string(self):
Packit Service a47777
        # gh-3926
Packit Service a47777
Packit Service a47777
        import pickle
Packit Service a47777
        test_string = np.string_('')
Packit Service a47777
        assert_equal(pickle.loads(pickle.dumps(test_string)), test_string)
Packit Service a47777
Packit Service a47777
    def test_frompyfunc_many_args(self):
Packit Service a47777
        # gh-5672
Packit Service a47777
Packit Service a47777
        def passer(*args):
Packit Service a47777
            pass
Packit Service a47777
Packit Service a47777
        assert_raises(ValueError, np.frompyfunc, passer, 32, 1)
Packit Service a47777
Packit Service a47777
    def test_repeat_broadcasting(self):
Packit Service a47777
        # gh-5743
Packit Service a47777
        a = np.arange(60).reshape(3, 4, 5)
Packit Service a47777
        for axis in chain(range(-a.ndim, a.ndim), [None]):
Packit Service a47777
            assert_equal(a.repeat(2, axis=axis), a.repeat([2], axis=axis))
Packit Service a47777
Packit Service a47777
    def test_frompyfunc_nout_0(self):
Packit Service a47777
        # gh-2014
Packit Service a47777
Packit Service a47777
        def f(x):
Packit Service a47777
            x[0], x[-1] = x[-1], x[0]
Packit Service a47777
Packit Service a47777
        uf = np.frompyfunc(f, 1, 0)
Packit Service a47777
        a = np.array([[1, 2, 3], [4, 5], [6, 7, 8, 9]])
Packit Service a47777
        assert_equal(uf(a), ())
Packit Service a47777
        assert_array_equal(a, [[3, 2, 1], [5, 4], [9, 7, 8, 6]])
Packit Service a47777
Packit Service a47777
    @dec.skipif(not HAS_REFCOUNT, "python has no sys.getrefcount")
Packit Service a47777
    def test_leak_in_structured_dtype_comparison(self):
Packit Service a47777
        # gh-6250
Packit Service a47777
        recordtype = np.dtype([('a', np.float64),
Packit Service a47777
                               ('b', np.int32),
Packit Service a47777
                               ('d', (str, 5))])
Packit Service a47777
Packit Service a47777
        # Simple case
Packit Service a47777
        a = np.zeros(2, dtype=recordtype)
Packit Service a47777
        for i in range(100):
Packit Service a47777
            a == a
Packit Service a47777
        assert_(sys.getrefcount(a) < 10)
Packit Service a47777
Packit Service a47777
        # The case in the bug report.
Packit Service a47777
        before = sys.getrefcount(a)
Packit Service a47777
        u, v = a[0], a[1]
Packit Service a47777
        u == v
Packit Service a47777
        del u, v
Packit Service a47777
        gc.collect()
Packit Service a47777
        after = sys.getrefcount(a)
Packit Service a47777
        assert_equal(before, after)
Packit Service a47777
Packit Service a47777
    def test_empty_percentile(self):
Packit Service a47777
        # gh-6530 / gh-6553
Packit Service a47777
        assert_array_equal(np.percentile(np.arange(10), []), np.array([]))
Packit Service a47777
Packit Service a47777
    def test_void_compare_segfault(self):
Packit Service a47777
        # gh-6922. The following should not segfault
Packit Service a47777
        a = np.ones(3, dtype=[('object', 'O'), ('int', '
Packit Service a47777
        a.sort()
Packit Service a47777
Packit Service a47777
    def test_reshape_size_overflow(self):
Packit Service a47777
        # gh-7455
Packit Service a47777
        a = np.ones(20)[::2]
Packit Service a47777
        if np.dtype(np.intp).itemsize == 8:
Packit Service a47777
            # 64 bit. The following are the prime factors of 2**63 + 5,
Packit Service a47777
            # plus a leading 2, so when multiplied together as int64,
Packit Service a47777
            # the result overflows to a total size of 10.
Packit Service a47777
            new_shape = (2, 13, 419, 691, 823, 2977518503)
Packit Service a47777
        else:
Packit Service a47777
            # 32 bit. The following are the prime factors of 2**31 + 5,
Packit Service a47777
            # plus a leading 2, so when multiplied together as int32,
Packit Service a47777
            # the result overflows to a total size of 10.
Packit Service a47777
            new_shape = (2, 7, 7, 43826197)
Packit Service a47777
        assert_raises(ValueError, a.reshape, new_shape)
Packit Service a47777
Packit Service a47777
    def test_invalid_structured_dtypes(self):
Packit Service a47777
        # gh-2865
Packit Service a47777
        # mapping python objects to other dtypes
Packit Service a47777
        assert_raises(ValueError, np.dtype, ('O', [('name', 'i8')]))
Packit Service a47777
        assert_raises(ValueError, np.dtype, ('i8', [('name', 'O')]))
Packit Service a47777
        assert_raises(ValueError, np.dtype,
Packit Service a47777
                      ('i8', [('name', [('name', 'O')])]))
Packit Service a47777
        assert_raises(ValueError, np.dtype, ([('a', 'i4'), ('b', 'i4')], 'O'))
Packit Service a47777
        assert_raises(ValueError, np.dtype, ('i8', 'O'))
Packit Service a47777
        # wrong number/type of tuple elements in dict
Packit Service a47777
        assert_raises(ValueError, np.dtype,
Packit Service a47777
                      ('i', {'name': ('i', 0, 'title', 'oops')}))
Packit Service a47777
        assert_raises(ValueError, np.dtype,
Packit Service a47777
                      ('i', {'name': ('i', 'wrongtype', 'title')}))
Packit Service a47777
        # disallowed as of 1.13
Packit Service a47777
        assert_raises(ValueError, np.dtype,
Packit Service a47777
                      ([('a', 'O'), ('b', 'O')], [('c', 'O'), ('d', 'O')]))
Packit Service a47777
        # allowed as a special case due to existing use, see gh-2798
Packit Service a47777
        a = np.ones(1, dtype=('O', [('name', 'O')]))
Packit Service a47777
        assert_equal(a[0], 1)
Packit Service a47777
Packit Service a47777
    def test_correct_hash_dict(self):
Packit Service a47777
        # gh-8887 - __hash__ would be None despite tp_hash being set
Packit Service a47777
        all_types = set(np.typeDict.values()) - {np.void}
Packit Service a47777
        for t in all_types:
Packit Service a47777
            val = t()
Packit Service a47777
Packit Service a47777
            try:
Packit Service a47777
                hash(val)
Packit Service a47777
            except TypeError as e:
Packit Service a47777
                assert_equal(t.__hash__, None)
Packit Service a47777
            else:
Packit Service a47777
                assert_(t.__hash__ != None)
Packit Service a47777
Packit Service a47777
    def test_scalar_copy(self):
Packit Service a47777
        scalar_types = set(np.sctypeDict.values())
Packit Service a47777
        values = {
Packit Service a47777
            np.void: b"a",
Packit Service a47777
            np.bytes_: b"a",
Packit Service a47777
            np.unicode_: "a",
Packit Service a47777
            np.datetime64: "2017-08-25",
Packit Service a47777
        }
Packit Service a47777
        for sctype in scalar_types:
Packit Service a47777
            item = sctype(values.get(sctype, 1))
Packit Service a47777
            item2 = copy.copy(item)
Packit Service a47777
            assert_equal(item, item2)
Packit Service a47777
Packit Service a47777
    def test_void_item_memview(self):
Packit Service a47777
        va = np.zeros(10, 'V4')
Packit Service a47777
        # for now, there is just a futurewarning
Packit Service a47777
        assert_warns(FutureWarning, va[:1].item)
Packit Service a47777
        # in the future, test we got a bytes copy:
Packit Service a47777
        #x = va[:1].item()
Packit Service a47777
        #va[0] = b'\xff\xff\xff\xff'
Packit Service a47777
        #del va
Packit Service a47777
        #assert_equal(x, b'\x00\x00\x00\x00')
Packit Service a47777
Packit Service a47777
    def test_structarray_title(self):
Packit Service a47777
        # The following used to segfault on pypy, due to NPY_TITLE_KEY
Packit Service a47777
        # not working properly and resulting to double-decref of the
Packit Service a47777
        # structured array field items:
Packit Service a47777
        # See: https://bitbucket.org/pypy/pypy/issues/2789
Packit Service a47777
        for j in range(5):
Packit Service a47777
            structure = np.array([1], dtype=[(('x', 'X'), np.object_)])
Packit Service a47777
            structure[0]['x'] = np.array([2])
Packit Service a47777
            gc.collect()
Packit Service a47777
Packit Service a47777
if __name__ == "__main__":
Packit Service a47777
    run_module_suite()