def test_unlimited(self): g = og('', vv=[ov('v', dd=[od('x', 2, u=True)])]) self.assertEqual(all_dimensions(g), []) add_missing_dims(g) self.assertEqual(len(g.dimensions), 1) self.assertNotEqual(all_dimensions(g), [od('x', 2)]) self.assertEqual(all_dimensions(g), [od('x', 2, u=True)])
def test_missing(self): g = og('', vv=[ov('v', dd=[od('x')])]) self.assertEqual(all_dimensions(g), []) r = add_missing_dims(g) self.assertEqual(r, [od('x')]) self.assertEqual(all_dimensions(g), [od('x')]) self.assertIs(g.dimensions['x'], r[0])
def test_length(self): g = og('', vv=[ov('v', dd=[od('x', 2)])]) self.assertEqual(all_dimensions(g), []) r = add_missing_dims(g) self.assertEqual(r, [od('x', 2)]) self.assertEqual(len(g.dimensions), 1) self.assertNotEqual(all_dimensions(g), [od('x')]) self.assertEqual(all_dimensions(g), [od('x', 2)])
def test_nomissing(self): g = og('', dd=[od('x', 3)], vv=[ov('v', dd=[od('x')])]) test_dim = g.dimensions['x'] self.assertEqual(all_dimensions(g), [test_dim]) self.assertIsNot(g.variables['v'].dimensions[0], test_dim) self.do_complete(g) self.assertEqual(all_dimensions(g), [test_dim]) self.assertIs(g.variables['v'].dimensions[0], test_dim)
def test_length_in_definition(self): g = og('', dd=[od('x', 7)], vv=[ov('v', dd=[od('x')])]) x_def = g.dimensions['x'] self.assertEqual(x_def, od('x', 7)) self.assertEqual(all_dimensions(g), [x_def]) self.assertIsNot(g.variables['v'].dimensions[0], x_def) self.do_complete(g) self.assertEqual(all_dimensions(g), [x_def]) self.assertIs(g.variables['v'].dimensions[0], x_def) self.assertEqual(x_def, od('x', 7))
def test_mixture(self): g = og('', dd=[od('x')], vv=[ov('v', dd=[od('y')])]) self.assertEqual(all_dimensions(g), [od('x')]) r = add_missing_dims(g) self.assertEqual(r, [od('y')]) self.assertEqual(len(g.dimensions), 2) self.assertIs(r[0], g.dimensions['y'])
def test_mixture(self): g = og('', dd=[od('x', 1)], vv=[ov('v', dd=[od('y', 3)])]) self.assertEqual(all_dimensions(g), [od('x', 1)]) self.do_complete(g) self.assertEqual(len(g.dimensions), 2) self.assertIn(od('x', 1), g.dimensions) self.assertIn(od('y', 3), g.dimensions) self.assertIs(g.variables['v'].dimensions[0], g.dimensions['y'])
def test_multiple(self): g = og('', vv=[ov('v1', dd=[od('x'), od('y')]), ov('v2', dd=[od('y'), od('z')])]) self.assertEqual(all_dimensions(g), []) r = add_missing_dims(g) self.assertEqual(len(r), 3) self.assertEqual(len(g.dimensions), 3) self.assertIn(od('x'), g.dimensions) self.assertIn(od('y'), g.dimensions) self.assertIn(od('z'), g.dimensions)
def test_unlimited(self): g = og('', vv=[ov('v1', dd=[od('x', 2, u=True)]), ov('v2', dd=[od('x', 2)])]) self.assertEqual(all_dimensions(g), []) self.assertEqual(g.variables['v2'].dimensions[0], od('x', 2)) self.do_complete(g) self.assertNotEqual(g.variables['v2'].dimensions[0], od('x', 2)) self.assertEqual(list(g.dimensions), [od('x', 2, u=True)]) test_dim = g.dimensions['x'] self.assertIs(g.variables['v1'].dimensions[0], test_dim) self.assertIs(g.variables['v2'].dimensions[0], test_dim)
def test_multiple(self): g = og('', vv=[ov('v1', dd=[od('x', 1), od('y')]), ov('v2', dd=[od('y', 2), od('z', 3)])]) self.assertEqual(all_dimensions(g), []) self.do_complete(g) self.assertEqual(len(g.dimensions), 3) self.assertIn(od('x', 1), g.dimensions) self.assertIn(od('y', 2), g.dimensions) self.assertIn(od('z', 3), g.dimensions) v1, v2 = g.variables['v1'], g.variables['v2'] dx, dy, dz = [g.dimensions[name] for name in ('x', 'y', 'z')] self.assertIs(v1.dimensions[0], dx) self.assertIs(v1.dimensions[1], dy) self.assertIs(v2.dimensions[0], dy) self.assertIs(v2.dimensions[1], dz)
def EG_prune_dimensions(group): dims_used = set( sum((var.dimensions for var in ncg.all_variables(group)), [])) for dim in ncg.all_dimensions(group): if dim not in dims_used: dim.remove()
def test_all_dimensions(self): walk_objs = list(all_dimensions(self.root)) self._check_all_of_type(walk_objs, nco.Dimension)
def test_length(self): g = og('', vv=[ov('v', dd=[od('x', 2)])]) self.assertEqual(all_dimensions(g), []) self.do_complete(g) self.assertNotEqual(list(g.dimensions), [od('x')]) self.assertEqual(list(g.dimensions), [od('x', 2)])
def test_missing(self): g = og('', vv=[ov('v', dd=[od('x', 7)])]) self.assertEqual(all_dimensions(g), []) self.do_complete(g) self.assertEqual(all_dimensions(g), [od('x', 7)]) self.assertIs(g.variables['v'].dimensions[0], g.dimensions['x'])
def test_empty(self): g = og('') self.do_complete(g) self.assertEqual(all_dimensions(g), [])