def test_is_complex(): ds = assemble_complex(generate_test_dataset()) # Check Dataset assert utils.is_complex(ds) assert not utils.is_complex(disassemble_complex(ds)) # Check DataArray assert utils.is_complex(ds.C12) assert not utils.is_complex(ds.C11)
def test_disassemble_complex_dataarray(): # Create complex dataset da = generate_test_dataarray(name='data') complex_data = np.random.rand(*da.shape) + 1j * np.random.rand(*da.shape) da.values = complex_data ds_real = disassemble_complex(da) assert_equal(set(ds_real.data_vars), {'data__re', 'data__im'}) xr_assert_equal(da.real, ds_real['data__re']) xr_assert_equal(da.imag, ds_real['data__im'])
def test_disassemble_complex_dataset(): # Create complex dataset ds = generate_test_dataset(var=['b', 'c']) dims = tuple(ds.dims.keys()) shape = tuple(ds.dims.values()) complex_data = np.random.rand(*shape) + 1j * np.random.rand(*shape) ds['a'] = (dims, complex_data) # Check that disassembling into reals works as expected ds_real = disassemble_complex(ds) assert_equal(set(ds_real.data_vars), {'a__re', 'a__im', 'b', 'c'}) xr_assert_equal(ds['a'].real, ds_real['a__re']) xr_assert_equal(ds['a'].imag, ds_real['a__im'])
def test_accessor_nd_as_real(): ds = generate_test_dataset().nd.as_complex() xr_assert_equal(io.disassemble_complex(ds), ds.nd.as_real())
def test_assemble_and_dissassemble_complex(): ds_orig = generate_test_dataset(var=['a__im', 'a__re', 'b', 'c']) ds_complex = assemble_complex(ds_orig) ds_real = disassemble_complex(ds_complex) xr_assert_identical(ds_orig, ds_real)