File: test_create_mem.py

package info (click to toggle)
netcdf4-python 1.7.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,604 kB
  • sloc: python: 6,057; ansic: 854; makefile: 15; sh: 2
file content (28 lines) | stat: -rw-r--r-- 1,004 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import unittest
import netCDF4
import numpy as np
from numpy.testing import assert_array_equal


@unittest.skipIf(not netCDF4.__has_nc_create_mem__, "missing `nc_create_mem`")
class TestCreateMem(unittest.TestCase):
    def test_mem_create(self):
        def check_inmemory(format):
            # memory is 'advisory size' - not needed for NETCDF4/HDF5
            # but is used for NETCDF3.
            nc = netCDF4.Dataset('test.nc','w',memory=1028,format=format)
            d = nc.createDimension('x',None)
            v = nc.createVariable('v',np.int32,'x')
            data = np.arange(5)
            v[0:5] = data
            # retrieve memory buffer
            b = nc.close()
            # open a new file using this memory buffer
            nc2 = netCDF4.Dataset('test2.nc','r',memory=b)
            assert_array_equal(nc2['v'][:],data)
            nc2.close()
        check_inmemory('NETCDF3_CLASSIC')
        check_inmemory('NETCDF4_CLASSIC')

if __name__ == '__main__':
    unittest.main()