예제 #1
0
 def test_no_trim(self):
     ds = create_test_data(0)
     # Manually add filename - encoding normally added by xr.open_dataset
     ds.encoding['source'] = 'folder0/BOUT.dmp.0.nc'
     actual = _trim(ds, guards={}, keep_boundaries={}, nxpe=1,
                    nype=1)
     xrt.assert_equal(actual, ds)
예제 #2
0
 def test_trim_guards(self):
     ds = create_test_data(0)
     # Manually add filename - encoding normally added by xr.open_dataset
     ds.encoding['source'] = 'folder0/BOUT.dmp.0.nc'
     actual = _trim(ds, guards={'time': 2}, keep_boundaries={},
                    nxpe=1, nype=1)
     selection = {'time': slice(2, -2)}
     expected = ds.isel(**selection)
     xrt.assert_equal(expected, actual)
예제 #3
0
    def test_keep_yboundaries(self):
        ds = create_test_data(0)
        ds = ds.rename({'dim2': 'y'})

        # Manually add filename - encoding normally added by xr.open_dataset
        ds.encoding['source'] = 'folder0/BOUT.dmp.0.nc'

        ds['jyseps2_1'] = 8
        ds['jyseps1_2'] = 8

        actual = _trim(ds, guards={'y': 2}, keep_boundaries={'y': True}, nxpe=1, nype=1)
        expected = ds  # Should be unchanged
        xrt.assert_equal(expected, actual)
예제 #4
0
    def test_trim_timing_info(self):
        ds = create_test_data(0)
        from xbout.load import _BOUT_PER_PROC_VARIABLES

        # remove a couple of entries from _BOUT_PER_PROC_VARIABLES so we test that _trim
        # does not fail if not all of them are present
        _BOUT_PER_PROC_VARIABLES = _BOUT_PER_PROC_VARIABLES[:-2]

        for v in _BOUT_PER_PROC_VARIABLES:
            ds[v] = 42.0
        ds = _trim(ds, guards={}, keep_boundaries={}, nxpe=1, nype=1)

        expected = create_test_data(0)
        xrt.assert_equal(ds, expected)
예제 #5
0
    def test_keep_yboundaries(self):
        ds = create_test_data(0)
        ds = ds.rename({"dim2": "y"})

        # Manually add filename - encoding normally added by xr.open_dataset
        ds.encoding["source"] = "folder0/BOUT.dmp.0.nc"

        ds["jyseps2_1"] = 8
        ds["jyseps1_2"] = 8

        actual = _trim(ds,
                       guards={"y": 2},
                       keep_boundaries={"y": True},
                       nxpe=1,
                       nype=1)
        expected = ds  # Should be unchanged
        xrt.assert_equal(expected, actual)
예제 #6
0
    def test_keep_yboundaries_doublenull_by_filenum(self, filenum, lower, upper):
        ds = create_test_data(0)
        ds = ds.rename({'dim2': 'y'})

        # Manually add filename - encoding normally added by xr.open_dataset
        ds.encoding['source'] = 'folder0/BOUT.dmp.'+str(filenum)+'.nc'

        ds['jyseps2_1'] = 3
        ds['jyseps1_2'] = 11
        ds['ny_inner'] = 8
        ds['MYSUB'] = 4

        actual = _trim(ds, guards={'y': 2}, keep_boundaries={'y': True}, nxpe=1, nype=4)
        expected = ds  # Should be unchanged
        if not lower:
            expected = expected.isel(y=slice(2, None, None))
        if not upper:
            expected = expected.isel(y=slice(None, -2, None))
        xrt.assert_equal(expected, actual)
예제 #7
0
    def test_keep_yboundaries_doublenull_by_filenum(self, filenum, lower,
                                                    upper):
        ds = create_test_data(0)
        ds = ds.rename({"dim2": "y"})

        # Manually add filename - encoding normally added by xr.open_dataset
        ds.encoding["source"] = "folder0/BOUT.dmp." + str(filenum) + ".nc"

        ds["jyseps2_1"] = 3
        ds["jyseps1_2"] = 11
        ds["ny_inner"] = 8
        ds["MYSUB"] = 4

        actual = _trim(ds,
                       guards={"y": 2},
                       keep_boundaries={"y": True},
                       nxpe=1,
                       nype=4)
        expected = ds  # Should be unchanged
        if not lower:
            expected = expected.isel(y=slice(2, None, None))
        if not upper:
            expected = expected.isel(y=slice(None, -2, None))
        xrt.assert_equal(expected, actual)
예제 #8
0
 def test_trim_ghosts(self):
     ds = create_test_data(0)
     actual = _trim(ds, ghosts={'time': 2})
     selection = {'time': slice(2, -2)}
     expected = ds.isel(**selection)
     xrt.assert_equal(expected, actual)
예제 #9
0
 def test_no_trim(self):
     ds = create_test_data(0)
     actual = _trim(ds)
     xrt.assert_equal(actual, ds)