示例#1
0
 def test_init(self):
     spec = specification.Specifier()
     self.assertListEqual(spec.input_file_list, [],
                          'Input file list not initialized to empty')
     self.assertEqual(spec.netcdf_format, 'netcdf4c',
                      'NetCDF format not initialized to netcdf4c')
     self.assertEqual(spec.output_file_prefix, 'tseries.',
                      'Output file prefix not initialized to tseries.')
     self.assertEqual(spec.output_file_suffix, '.nc',
                      'Output file prefix not initialized to .nc')
     self.assertListEqual(
         spec.time_variant_metadata, [],
         'Time variant metadata list not initialized to empty')
示例#2
0
 def test_validate_values_fail_3(self):
     in_list = ['timekeeperTests.py', 'messengerTests.py']
     fmt = 'netcdf4'
     prefix = '/sfcsrytsdfv/pre.'
     suffix = '.suf.nc'
     metadata = []
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    prefix=prefix,
                                    suffix=suffix,
                                    metadata=metadata)
     spec.validate_types()
     self.assertRaises(ValueError, spec.validate_values)
示例#3
0
def test_validate_values_fail_cl():
    in_list = ['test_reshaper.py', 'test_s2srun.py']
    fmt = 'netcdf4'
    cl = 111
    prefix = 'pre.'
    suffix = '.suf.nc'
    metadata = []
    spec = specification.Specifier(
        infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata
    )
    spec.validate_types()
    with pytest.raises(ValueError):
        spec.validate_values()
示例#4
0
def test_validate_values_fail_input():
    in_list = ['a', 'b', 'c']
    fmt = 'netcdf'
    cl = 5
    prefix = 'pre.'
    suffix = '.suf.nc'
    metadata = []
    spec = specification.Specifier(
        infiles=in_list, ncfmt=fmt, compression=cl, prefix=prefix, suffix=suffix, metadata=metadata
    )
    spec.validate_types()
    with pytest.raises(ValueError):
        spec.validate_values()
示例#5
0
 def test_validate_values_fail_1(self):
     in_list = ['a', 'b', 'c']
     fmt = 'netcdf'
     prefix = 'pre.'
     suffix = '.suf.nc'
     metadata = []
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    prefix=prefix,
                                    suffix=suffix,
                                    metadata=metadata)
     spec.validate_types()
     self.assertRaises(ValueError, spec.validate_values)
示例#6
0
 def test_validate_types_fail_format(self):
     in_list = ['a', 'b', 'c']
     fmt = 2342
     cl = 5
     prefix = 'pre.'
     suffix = '.suf.nc'
     metadata = ['x', 'y', 'z']
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    compression=cl,
                                    prefix=prefix,
                                    suffix=suffix,
                                    metadata=metadata)
     self.assertRaises(TypeError, spec.validate_types)
示例#7
0
 def test_validate_types(self):
     in_list = ['a', 'b', 'c']
     fmt = 'netcdf'
     cl = 3
     prefix = 'pre.'
     suffix = '.suf.nc'
     metadata = ['x', 'y', 'z']
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    compression=cl,
                                    prefix=prefix,
                                    suffix=suffix,
                                    metadata=metadata)
     spec.validate_types()
示例#8
0
def test_init():
    spec = specification.Specifier()
    assert len(spec.input_file_list) == 0
    assert spec.netcdf_format == 'netcdf4'
    assert spec.compression_level == 0
    assert spec.least_significant_digit is None
    assert spec.output_file_prefix == 'tseries.'
    assert spec.output_file_suffix == '.nc'
    assert spec.time_series is None
    assert len(spec.time_variant_metadata) == 0
    assert spec.assume_1d_time_variant_metadata is False
    assert spec.io_backend == 'netCDF4'
    assert spec.exclude_list == []
    assert spec.metadata_filename is None
示例#9
0
 def test_init(self):
     spec = specification.Specifier()
     self.assertEqual(len(spec.input_file_list), 0,
                      'Input file list not initialized to empty')
     self.assertEqual(spec.netcdf_format, 'netcdf4',
                      'NetCDF format not initialized to netcdf4')
     self.assertEqual(spec.compression_level, 0,
                      'NetCDF compression level not initialized to 0')
     self.assertEqual(spec.output_file_prefix, 'tseries.',
                      'Output file prefix not initialized to tseries.')
     self.assertEqual(spec.output_file_suffix, '.nc',
                      'Output file prefix not initialized to .nc')
     self.assertEqual(
         len(spec.time_variant_metadata), 0,
         'Time variant metadata list not initialized to empty')
示例#10
0
 def test_validate_values_fail_format(self):
     in_list = ['timekeeperTests.py', 'messengerTests.py']
     fmt = 'netcdf9'
     cl = 5
     prefix = 'pre.'
     suffix = '.suf.nc'
     metadata = []
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    compression=cl,
                                    prefix=prefix,
                                    suffix=suffix,
                                    metadata=metadata)
     spec.validate_types()
     self.assertRaises(ValueError, spec.validate_values)
示例#11
0
 def test_validate_values_mod(self):
     in_list = ['specificationTests.py']
     fmt = 'netcdf4'
     prefix = 'pre.'
     suffix = '.suf'
     metadata = []
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    prefix=prefix,
                                    suffix=suffix,
                                    metadata=metadata)
     spec.validate_types()
     spec.validate_values()
     self.assertEqual(spec.output_file_suffix, suffix + '.nc',
                      'Suffix was not changed to .nc extension')
示例#12
0
 def test_validate_types_fail_timeseries(self):
     in_list = ['a', 'b', 'c']
     fmt = 'netcdf'
     cl = 5
     prefix = 'pre.'
     suffix = '.suf.nc'
     tseries = ['1', 2.5]
     metadata = ['x', 'y', 'z']
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    compression=cl,
                                    prefix=prefix,
                                    suffix=suffix,
                                    timeseries=tseries,
                                    metadata=metadata)
     self.assertRaises(TypeError, spec.validate_types)
示例#13
0
def test_validate_types():
    in_list = ['a', 'b', 'c']
    fmt = 'netcdf'
    cl = 3
    prefix = 'pre.'
    suffix = '.suf.nc'
    tseries = ['1', '2']
    metadata = ['x', 'y', 'z']
    spec = specification.Specifier(
        infiles=in_list,
        ncfmt=fmt,
        compression=cl,
        prefix=prefix,
        suffix=suffix,
        timeseries=tseries,
        metadata=metadata,
        meta1d=True,
    )
    spec.validate_types()
示例#14
0
def test_validate_types_fail_meta1d():
    in_list = ['a', 'b', 'c']
    fmt = 'netcdf'
    cl = 5
    prefix = 'pre.'
    suffix = '.suf.nc'
    metadata = ['x', 'y', 'z']
    meta1d = 't'
    spec = specification.Specifier(
        infiles=in_list,
        ncfmt=fmt,
        compression=cl,
        prefix=prefix,
        suffix=suffix,
        meta1d=meta1d,
        metadata=metadata,
    )
    with pytest.raises(TypeError):
        spec.validate_types()
示例#15
0
def test_validate_types_fail_backend():
    in_list = ['a', 'b', 'c']
    fmt = 2342
    cl = 5
    prefix = 'pre.'
    suffix = '.suf.nc'
    metadata = ['x', 'y', 'z']
    backend = 1
    spec = specification.Specifier(
        infiles=in_list,
        ncfmt=fmt,
        compression=cl,
        prefix=prefix,
        suffix=suffix,
        metadata=metadata,
        backend=backend,
    )
    with pytest.raises(TypeError):
        spec.validate_types()
示例#16
0
def test_init_full():
    in_list = ['a', 'b', 'c']
    fmt = 'netcdf4c'
    cl = 4
    prefix = 'pre.'
    suffix = '.suf.nc'
    tseries = ['1', '2']
    metadata = ['x', 'y', 'z']
    xlist = ['g', 'h']
    meta1d = True
    metafile = 'd'
    backend = 'Nio'
    lsigfig = 3
    spec = specification.Specifier(
        infiles=in_list,
        ncfmt=fmt,
        compression=cl,
        prefix=prefix,
        suffix=suffix,
        timeseries=tseries,
        metadata=metadata,
        meta1d=meta1d,
        metafile=metafile,
        backend=backend,
        least_significant_digit=lsigfig,
        exclude_list=xlist,
    )
    for i1, i2 in zip(spec.input_file_list, in_list):
        assert i1 == i2
    assert spec.io_backend == backend
    assert spec.metadata_filename == metafile
    assert spec.netcdf_format == fmt
    assert spec.compression_level == cl
    assert spec.output_file_prefix == prefix
    assert spec.output_file_suffix == suffix
    assert spec.exclude_list == xlist
    assert spec.least_significant_digit == lsigfig
    for i1, i2 in zip(spec.time_series, tseries):
        assert i1 == i2
    for i1, i2 in zip(spec.time_variant_metadata, metadata):
        assert i1 == i2
    assert spec.assume_1d_time_variant_metadata == meta1d
示例#17
0
 def test_init_full(self):
     in_list = ['a', 'b', 'c']
     fmt = 'netcdf4c'
     cl = 4
     prefix = 'pre.'
     suffix = '.suf.nc'
     tseries = ['1', '2']
     metadata = ['x', 'y', 'z']
     meta1d = True
     backend = 'Nio'
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    compression=cl,
                                    prefix=prefix,
                                    suffix=suffix,
                                    timeseries=tseries,
                                    metadata=metadata,
                                    meta1d=meta1d,
                                    backend=backend)
     for i1, i2 in zip(spec.input_file_list, in_list):
         self.assertEqual(i1, i2,
                          'Input file list not initialized properly')
     self.assertEqual(spec.io_backend, backend,
                      'NetCDF I/O backend not set properly')
     self.assertEqual(spec.netcdf_format, fmt,
                      'NetCDF format not initialized properly')
     self.assertEqual(spec.compression_level, cl,
                      'NetCDF compression level not initialized properly')
     self.assertEqual(spec.output_file_prefix, prefix,
                      'Output file prefix not initialized properly')
     self.assertEqual(spec.output_file_suffix, suffix,
                      'Output file prefix not initialized properly')
     for i1, i2 in zip(spec.time_series, tseries):
         self.assertEqual(i1, i2,
                          'Time-series list not initialized properly')
     for i1, i2 in zip(spec.time_variant_metadata, metadata):
         self.assertEqual(
             i1, i2, 'Time-variant metadata list not initialized properly')
     self.assertEqual(spec.assume_1d_time_variant_metadata, meta1d,
                      '1D metadata flag not initialized properly')
示例#18
0
 def test_init_full(self):
     in_list = ['a', 'b', 'c']
     fmt = 'netcdf'
     prefix = 'pre.'
     suffix = '.suf.nc'
     metadata = ['x', 'y', 'z']
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    prefix=prefix,
                                    suffix=suffix,
                                    metadata=metadata)
     self.assertListEqual(spec.input_file_list, in_list,
                          'Input file list not initialized properly')
     self.assertEqual(spec.netcdf_format, fmt,
                      'NetCDF format not initialized properly')
     self.assertEqual(spec.output_file_prefix, prefix,
                      'Output file prefix not initialized properly')
     self.assertEqual(spec.output_file_suffix, suffix,
                      'Output file prefix not initialized properly')
     self.assertListEqual(
         spec.time_variant_metadata, metadata,
         'Time variant metadata list not initialized properly')
示例#19
0
 def test_init(self):
     spec = specification.Specifier()
     self.assertEqual(len(spec.input_file_list), 0,
                      'Input file list not initialized to empty')
     self.assertEqual(spec.netcdf_format, 'netcdf4',
                      'NetCDF format not initialized to netcdf4')
     self.assertEqual(spec.compression_level, 0,
                      'NetCDF compression level not initialized to 0')
     self.assertEqual(spec.output_file_prefix, 'tseries.',
                      'Output file prefix not initialized to tseries.')
     self.assertEqual(spec.output_file_suffix, '.nc',
                      'Output file prefix not initialized to .nc')
     self.assertEqual(
         spec.time_series, None,
         'Time-series variables list is not initialized to None')
     self.assertEqual(
         len(spec.time_variant_metadata), 0,
         'Time variant metadata list not initialized to empty')
     self.assertEqual(
         spec.assume_1d_time_variant_metadata, False,
         'Time-variable 1D metadata flag is not initialized to False')
     self.assertEqual(spec.io_backend, 'netCDF4',
                      'I/O backend not initialized to netCDF4')
示例#20
0
 def test_write(self):
     in_list = ['specificationTests.py']
     fmt = 'netcdf4'
     cl = 8
     prefix = 'pre.'
     suffix = '.suf.nc'
     tseries = ['1', '2']
     metadata = ['time']
     spec = specification.Specifier(infiles=in_list,
                                    ncfmt=fmt,
                                    compression=cl,
                                    prefix=prefix,
                                    suffix=suffix,
                                    timeseries=tseries,
                                    metadata=metadata)
     fname = 'test_write.s2s'
     spec.write(fname)
     self.assertTrue(os.path.exists(fname), 'Specfile failed to write')
     spec2 = pickle.load(open(fname, 'r'))
     for i1, i2 in zip(spec2.input_file_list, in_list):
         self.assertEqual(i1, i2,
                          'Input file list not initialized properly')
     self.assertEqual(spec2.netcdf_format, fmt,
                      'NetCDF format not initialized properly')
     self.assertEqual(spec2.compression_level, cl,
                      'NetCDF compression level not initialized properly')
     self.assertEqual(spec2.output_file_prefix, prefix,
                      'Output file prefix not initialized properly')
     self.assertEqual(spec2.output_file_suffix, suffix,
                      'Output file prefix not initialized properly')
     for i1, i2 in zip(spec2.time_series, tseries):
         self.assertEqual(i1, i2,
                          'Time series name list not initialized properly')
     for i1, i2 in zip(spec2.time_variant_metadata, metadata):
         self.assertEqual(
             i1, i2, 'Time variant metadata list not initialized properly')
     os.remove(fname)
示例#21
0
 def test_validate_types_defaults(self):
     in_list = ['a', 'b', 'c']
     spec = specification.Specifier(infiles=in_list)
     spec.validate_types()