Package solvcon :: Package io :: Package tests :: Module test_netcdf
[hide private]
[frames] | no frames]

Source Code for Module solvcon.io.tests.test_netcdf

  1  # -*- coding: UTF-8 -*- 
  2   
  3  from unittest import TestCase 
  4   
5 -class BaseTestRead(TestCase):
6 __test__ = False 7
8 - def test_open(self):
9 from ..netcdf import NetCDF 10 nc = NetCDF() 11 nc.open_file(self.testfn) 12 nc.close_file() 13 nc = NetCDF(self.testfn) 14 nc.close_file()
15
16 - def test_dim(self):
17 from ..netcdf import NetCDF 18 nc = NetCDF(self.testfn) 19 self.assertEqual(nc.get_dim('ii'), 4) 20 self.assertEqual(nc.get_dim('jj'), 3) 21 self.assertEqual(nc.get_dim('kk'), 3) 22 self.assertEqual(nc.get_dim('i1'), 5) 23 self.assertEqual(nc.get_dim('i2'), 3) 24 self.assertEqual(nc.get_dim('i3'), 7) 25 self.assertEqual(nc.get_dim('rec'), 3) 26 self.assertEqual(nc.get_dim('ll'), 3) 27 self.assertEqual(nc.get_dim('mm'), 1) 28 self.assertEqual(nc.get_dim('nn'), 1) 29 self.assertEqual(nc.get_dim('pp'), 7) 30 self.assertEqual(nc.get_dim('qq'), 10) 31 self.assertEqual(nc.get_dim('d0'), 2) 32 self.assertEqual(nc.get_dim('d1'), 3) 33 self.assertEqual(nc.get_dim('d2'), 5) 34 self.assertEqual(nc.get_dim('d3'), 6) 35 self.assertEqual(nc.get_dim('d4'), 4) 36 self.assertEqual(nc.get_dim('d5'), 31) 37 self.assertEqual(nc.get_dim('w'), 7) 38 self.assertEqual(nc.get_dim('x'), 5) 39 self.assertEqual(nc.get_dim('y'), 6) 40 self.assertEqual(nc.get_dim('z'), 4) 41 nc.close_file()
42
43 - def test_aa(self):
44 from ..netcdf import NetCDF 45 nc = NetCDF(self.testfn) 46 ii = nc.get_dim('ii') 47 arr = nc.get_array('aa', (ii,), 'int32') 48 self.assertEqual(arr[0], -2) 49 self.assertTrue((arr[1:] == 0).all()) 50 nc.close_file()
51
52 - def test_bb(self):
53 from numpy import array 54 from ..netcdf import NetCDF 55 nc = NetCDF(self.testfn) 56 kk = nc.get_dim('kk') 57 jj = nc.get_dim('jj') 58 arr = nc.get_array('bb', (kk, jj), 'int32') 59 self.assertTrue((arr == array([ 60 [-4, -3, -2], [-1, 0, 1], [2, 3, 0], 61 ])).all()) 62 nc.close_file()
63
64 - def test_ce(self):
65 from numpy import array 66 from ..netcdf import NetCDF 67 nc = NetCDF(self.testfn) 68 rec = nc.get_dim('rec') 69 i2 = nc.get_dim('i2') 70 i3 = nc.get_dim('i3') 71 arr = nc.get_array('ce', (rec, i2, i3), 'float32') 72 self.assertTrue((arr == array([ 73 [[ 1., 2., 3., 4., 5., 6., 7.], 74 [ 8., 9., 10., 11., 12., 13., 14.], 75 [ 15., 16., 17., 18., 19., 20., 21.]], 76 [[ 1., 2., 3., 4., 5., 6., 7.], 77 [ 8., 9., 10., 11., 12., 13., 14.], 78 [ 15., 16., 17., 18., 19., 20., 21.]], 79 [[ 43., 44., 45., 46., 47., 48., 49.], 80 [ 50., 51., 52., 53., 54., 55., 56.], 81 [ 57., 58., 59., 60., 61., 62., 1.]], 82 ], dtype='float32')).all()) 83 nc.close_file()
84
85 - def test_doublevar(self):
86 from numpy import arange 87 from ..netcdf import NetCDF 88 nc = NetCDF(self.testfn) 89 w = nc.get_dim('w') 90 x = nc.get_dim('x') 91 y = nc.get_dim('y') 92 z = nc.get_dim('z') 93 arr = nc.get_array('doublevar', (w, x, y, z), 'float64') 94 arr2 = arange(w*x*y*z, dtype='float64') - 420 95 arr2[420-148+1] = 0 96 arr2[-1] = 0 97 arr2 = arr2.reshape(arr.shape) 98 self.assertTrue((arr == arr2).all()) 99 nc.close_file()
100
101 -class TestReadClassic(BaseTestRead):
102 __test__ = True 103 import os 104 from ...conf import env 105 testfn = [env.datadir] + ['ref_nctest_classic.nc'] 106 testfn = os.path.join(*testfn)
107
108 -class TestReadLong(BaseTestRead):
109 __test__ = True 110 import os 111 from ...conf import env 112 testfn = [env.datadir] + ['ref_nctest_64bit_offset.nc'] 113 testfn = os.path.join(*testfn)
114