Ejemplo n.º 1
0
    def test_enable_disable_memmap(self, tmpdir):
        f = os.path.join(tmpdir, 'npn_empty.npy')
        arr = [[0, 1, 2, 3, 4, 5], [0, 1, 2, 3, 4, 5]]
        a = MemMapArray(arr, filename=f, dtype=None, memmap=False)
        assert_false(a.memmap)
        assert_false(os.path.exists(f))

        a.enable_memmap()
        assert_true(a.memmap)
        assert_true(os.path.exists(f))
        assert_is_instance(a._contained, np.memmap)

        # First keep the file
        a.disable_memmap(remove=False)
        assert_false(a.memmap)
        assert_true(os.path.exists(f))
        assert_is_not_instance(a._contained, np.memmap)

        a.enable_memmap()
        assert_true(a.memmap)
        assert_true(os.path.exists(f))
        assert_is_instance(a._contained, np.memmap)

        # Remove the file
        a.disable_memmap(remove=True)
        assert_false(a.memmap)
        assert_false(os.path.exists(f))
        assert_is_not_instance(a._contained, np.memmap)

        with pytest.raises(ValueError):
            # raises error if name is locked
            a.enable_memmap('not_the_same_name.npy')
Ejemplo n.º 2
0
    def test_reset_data(self, tmpdir):
        d1 = np.array([[1, 2], [3, 4]]).astype('float32')
        m = MemMapArray(d1,
                        os.path.join(tmpdir, 'reset.npy'),
                        dtype='float64',
                        memmap=True)
        assert_true(np.issubdtype(m.dtype, np.float64))
        assert_equal(m, d1)
        assert_false(m.empty)
        assert_true(m.memmap)

        m.reset_data(d1)
        assert_true(np.issubdtype(m.dtype, np.float32))
        assert_equal(m, d1)
        assert_false(m.empty)
        assert_true(m.memmap)

        m.reset_data(d1.astype('int16'))
        assert_true(np.issubdtype(m.dtype, np.int16))
        assert_equal(m, d1)
        assert_false(m.empty)
        assert_true(m.memmap)

        m.reset_data(None)
        assert_true(m.empty)
        assert_true(m._contained is None)
        assert_true(m.memmap)
        m.disable_memmap()

        m.reset_data(np.ones((10, 10)), dtype='float32')
        assert_true(np.issubdtype(m.dtype, np.float32))
        assert_equal(m, np.ones((10, 10)))
        assert_false(m.empty)
        assert_false(m.memmap)