Exemplo n.º 1
0
def test_netcdf_io_init_legacy():
    # should raise two warnings
    with pytest.warns(UserWarning, match=r'Coordinates for .*'):
        netcdf_io = io.NetCDFIO(rcm8_path, 'netcdf')
    with pytest.warns(UserWarning, match=r'No associated .*'):
        netcdf_io = io.NetCDFIO(rcm8_path, 'netcdf')
    assert netcdf_io.io_type == 'netcdf'
    assert len(netcdf_io._in_memory_data.keys()) == 0
Exemplo n.º 2
0
def test_netcdf_io_nomemory():
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    dataset_size = sys.getsizeof(netcdf_io.dataset)
    inmemory_size = sys.getsizeof(netcdf_io._in_memory_data)

    var = 'velocity'
    # slice the dataset directly
    velocity_arr = netcdf_io.dataset[var].data[:, 10, :]
    assert len(velocity_arr.shape) == 2
    assert type(velocity_arr) is np.ndarray

    dataset_size_after = sys.getsizeof(netcdf_io.dataset)
    inmemory_size_after = sys.getsizeof(netcdf_io._in_memory_data)

    assert dataset_size == dataset_size_after
    assert inmemory_size == inmemory_size_after
Exemplo n.º 3
0
def test_netcdf_io_intomemory_direct():
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    dataset_size = sys.getsizeof(netcdf_io.dataset)
    inmemory_size = sys.getsizeof(netcdf_io._in_memory_data)

    var = 'velocity'
    assert len(netcdf_io._in_memory_data.keys()) == 0
    netcdf_io._in_memory_data[var] = np.array(netcdf_io.dataset.variables[var])
    assert len(netcdf_io._in_memory_data.keys()) == 1
    _arr = netcdf_io._in_memory_data[var]

    dataset_size_after = sys.getsizeof(netcdf_io.dataset)
    inmemory_size_after = sys.getsizeof(netcdf_io._in_memory_data)

    assert dataset_size == dataset_size_after
    assert inmemory_size < inmemory_size_after
    assert sys.getsizeof(_arr) > 1000
Exemplo n.º 4
0
def test_netcdf_io_intomemory_read():
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    dataset_size = sys.getsizeof(netcdf_io.dataset)
    inmemory_size = sys.getsizeof(netcdf_io._in_memory_data)

    var = 'velocity'
    assert len(netcdf_io._in_memory_data.keys()) == 0
    netcdf_io.read(var)
    assert len(netcdf_io._in_memory_data.keys()) == 1
    _arr = netcdf_io._in_memory_data[var]

    assert isinstance(_arr, xr.core.dataarray.DataArray)

    dataset_size_after = sys.getsizeof(netcdf_io.dataset)
    inmemory_size_after = sys.getsizeof(netcdf_io._in_memory_data)

    assert dataset_size == dataset_size_after
    assert inmemory_size < inmemory_size_after
Exemplo n.º 5
0
def test_hdf5_io_init():
    with pytest.warns(UserWarning, match=r'No associated .*'):
        netcdf_io = io.NetCDFIO(hdf_path, 'hdf5')
    assert netcdf_io.io_type == 'hdf5'
    assert len(netcdf_io._in_memory_data.keys()) == 0
Exemplo n.º 6
0
def test_netcdf_io_keys():
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    assert len(netcdf_io.keys) > 3
Exemplo n.º 7
0
def test_netcdf_io_init():
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    assert netcdf_io.io_type == 'netcdf'
    assert len(netcdf_io._in_memory_data.keys()) == 0
Exemplo n.º 8
0
def test_readvar_intomemory_error():
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    assert netcdf_io._in_memory_data == {}

    with pytest.raises(KeyError):
        netcdf_io.read('nonexistant')
Exemplo n.º 9
0
def test_netcdf_no_metadata():
    # works fine, because there is no `connect` call in io init
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    assert len(netcdf_io._in_memory_data.keys()) == 0
Exemplo n.º 10
0
def test_readvar_intomemory():
    netcdf_io = io.NetCDFIO(golf_path, 'netcdf')
    assert netcdf_io._in_memory_data == {}

    netcdf_io.read('eta')
    assert ('eta' in netcdf_io._in_memory_data.keys()) is True
Exemplo n.º 11
0
def test_invalid_file(tmp_path):
    p = utilities.create_dummy_txt_file(tmp_path)
    with pytest.raises(TypeError):
        io.NetCDFIO(p, 'netcdf')
Exemplo n.º 12
0
def test_empty_file(tmp_path):
    p = utilities.create_dummy_netcdf(tmp_path)
    with pytest.raises(NotImplementedError):
        io.NetCDFIO(p, 'netcdf')
Exemplo n.º 13
0
def test_nofile():
    with pytest.raises(FileNotFoundError):
        io.NetCDFIO('badpath', 'netcdf')
Exemplo n.º 14
0
def test_hdf5_io_keys():
    with pytest.warns(UserWarning, match=r'No associated .*'):
        hdf5_io = io.NetCDFIO(hdf_path, 'hdf5')
    assert len(hdf5_io.keys) == 7