def test_name_of_sub_elements(self): r = ModelNode(self.h5, '/', '', load(SimpleContainer)) self.assertEqual(r.attrs_name, []) self.assertEqual(r.children_name, []) self.assertEqual(len(r), 0) self.assertEqual(r.model.attrs_name, ['c', 'b', 'f', 'i', 's']) self.assertEqual(r.model.children_name, []) self.assertEqual(r.model.consts, []) # # # r = ModelNode(self.h5, '/', '', load(ConstContainer)) self.assertEqual(r.model.consts, [('c', (0.1 + 0.1j)), ('b', True), ('f', 1.0), ('i', 1), ('s', 'string')]) self.assertEqual(r.model.children_name, []) self.assertEqual(r.model.attrs_name, []) self.assertEqual(r.children_name, []) self.assertEqual(r.attrs_name, []) self.assertEqual(len(r), 0) r = ModelNode(self.h5, '/', '', load(ComplexContainer)) self.assertEqual(r.model.attrs_name, []) self.assertEqual( r.model.children_name, ['list_indexed', 'list_of', 'table_t', 'subContainer', 'array']) self.assertEqual(r.model.consts, [('const', 'MODEL')]) self.assertEqual(r.attrs_name, []) self.assertEqual(r.children_name, []) self.assertEqual(len(r), 0)
def test_node_type(self): """Test the hdf node type (group, data-set or table) """ node = load(SimpleContainer) self.assertEqual(node.mtype, minspect.InstanceOf_Inspector.MTYPE) node = load(ConstContainer) self.assertEqual(node.mtype, minspect.InstanceOf_Inspector.MTYPE) node = load(ComplexContainer) self.assertEqual(node.mtype, minspect.InstanceOf_Inspector.MTYPE) child = node.get_child('array') self.assertEqual(child.mtype, minspect.Array_Inspector.MTYPE) child = node.get_child('subContainer') self.assertEqual(child.mtype, minspect.InstanceOf_Inspector.MTYPE) child = node.get_child('list_of') self.assertEqual(child.mtype, minspect.ListOf_Inspector.MTYPE) child = node.get_child('list_indexed') self.assertEqual(child.mtype, minspect.IListOf_Inspector.MTYPE) child = node.get_child('table_t') self.assertEqual(child.mtype, minspect.TableTupled_Inspector.MTYPE) node = load(EnumContainer) self.assertEqual(node.mtype, minspect.InstanceOf_Inspector.MTYPE) child = node.get_child('value') self.assertEqual(child.mtype, minspect.SubClassOf_Inspector.MTYPE)
def test_can_set_const_data(self): r = ModelNode(self.h5, '/', '', load(ConstContainer)) self.assertFalse(r.can_set_attr('c', 1)) self.assertFalse(r.can_set_attr('r', '2')) self.assertFalse(r.can_set_attr('i', 0.2)) self.assertTrue(r.can_set_attr('i', 1))
def test_simple_const_container(self): """Test simple constant container class model. """ node = load(ConstContainer) self.assertEqual(node.attrs_name, []) self.assertEqual(node.consts_name, ['c', 'b', 'f', 'i', 's']) self.assertEqual(node.children_name, [])
def test_type_attr(self): node = load(SimpleContainer) self.assertEqual(node.get_attr_type('i'), int) self.assertEqual(node.get_attr_type('f'), float) self.assertEqual(node.get_attr_type('b'), bool) self.assertEqual(node.get_attr_type('c'), complex) self.assertEqual(node.get_attr_type('s'), str)
def test_get_model(self): r = ModelNode(self.h5, '/', '', load(ComplexContainer)) m = r.get_model('list_of') self.assertEqual(m.xpath, '/complexContainer/list_of') r._create_group('list_of') c = r.get_child('list_of') self.assertEqual(c.model.xpath, '/complexContainer/list_of')
def test_to_string_line(self): node = load(SimpleContainer) self.assertEqual(node._DrawingTree__tostring_line(), 'simpleContainer(@c, @b, @f, @i, @s)/') node = load(ConstContainer) self.assertEqual(node._DrawingTree__tostring_line(), 'constContainer(#c=(0.1+0.1j), #b=True, #f=1.0, #i=1, #s=string)/') node = load(ComplexContainer) child = node.get_child('array') self.assertEqual(child._DrawingTree__tostring_line(), 'array{}') child = node.get_child('table_t') self.assertEqual(child._DrawingTree__tostring_line(), 'table_t[]') node = load(EnumContainer) child = node.get_child('value') self.assertEqual(child._DrawingTree__tostring_line(), 'value(@c)/')
def test_to_string_line(self): node = load(SimpleContainer) self.assertEqual(node._DrawingTree__tostring_line(), 'simpleContainer(@c, @b, @f, @i, @s)/') node = load(ConstContainer) self.assertEqual( node._DrawingTree__tostring_line(), 'constContainer(#c=(0.1+0.1j), #b=True, #f=1.0, #i=1, #s=string)/') node = load(ComplexContainer) child = node.get_child('array') self.assertEqual(child._DrawingTree__tostring_line(), 'array{}') child = node.get_child('table_t') self.assertEqual(child._DrawingTree__tostring_line(), 'table_t[]') node = load(EnumContainer) child = node.get_child('value') self.assertEqual(child._DrawingTree__tostring_line(), 'value(@c)/')
def test_can_set_data(self): """Test can set data Don't test the value just attribute's name """ r = ModelNode(self.h5, '/', '', load(SimpleContainer)) self.assertTrue(r.can_set_attr('c', 1)) self.assertTrue(r.can_set_attr('i', 0.2)) self.assertFalse(r.can_set_attr('r', '2'))
def test_int(self): m = load(SimpleContainer) self.assertTrue(m.is_legale_value('i', int())) self.assertTrue(m.is_legale_value('i', bool())) self.assertTrue(m.is_legale_value('i', numpy.int())) self.assertTrue(m.is_legale_value('i', numpy.int32())) self.assertFalse(m.is_legale_value('i', float())) self.assertFalse(m.is_legale_value('i', str())) self.assertFalse(m.is_legale_value('i', complex()))
def test_children_container(self): """Test the capacity of model to contain children. """ node = load(ComplexContainer) self.assertEqual(node.attrs_name, []) self.assertEqual(node.consts_name, ['const']) self.assertEqual(node.children_name, ['list_indexed', 'list_of', 'table_t', 'subContainer', 'array']) list_of = node.get_child('list_of') self.assertEqual(list_of.children_name, ['$user_name'])
def test_children_container(self): """Test the capacity of model to contain children. """ node = load(ComplexContainer) self.assertEqual(node.attrs_name, []) self.assertEqual(node.consts_name, ['const']) self.assertEqual( node.children_name, ['list_indexed', 'list_of', 'table_t', 'subContainer', 'array']) list_of = node.get_child('list_of') self.assertEqual(list_of.children_name, ['$user_name'])
def test_to_string(self): node = load(ComplexContainer) self.assertEqual( node.tostring(), """complexContainer(#const=MODEL)/ |-- list_indexed/ | `*- aA(@c)/ | |?- aAA(#c=a)/ | `?- aAB(#c=b)/ |-- list_of/ | `*- $user_name(#c=(0.1+0.1j), #b=True, #f=1.0, #i=1, #s=string)/ |-- table_t[] |-- subContainer(@c, @b, @f, @i, @s)/ `-- array{}""") node = load(EnumContainer) self.assertEqual( node.tostring(), """enumContainer/ `-- value(@c)/ |?- aAA(#c=a)/ `?- aAB(#c=b)/""")
def test_has_already(self): r = ModelNode(self.h5, '/', '', load(SimpleContainer)) r.hdfo._f_setAttr('i', 1) r.hdfo._f_setAttr('a', 'a') self.assertTrue(r.has_already_attr('i')) self.assertTrue(r.has_already_attr('i', testalsomodel=False)) self.assertFalse(r.has_already_attr('a')) self.assertTrue(r.has_already_attr('a', testalsomodel=False)) r = ModelNode(self.h5, '/', '', load(ComplexContainer)) r._create_group('list_of') self.assertTrue(r.has_already_child('list_of')) self.assertTrue(r.has_already_child('list_of', testalsomodel=False)) self.assertEqual(len(r), 1) self.assertFalse(r.has_already_child('a')) self.assertFalse(r.has_already_child('a', testalsomodel=False))
def test_to_string(self): node = load(ComplexContainer) self.assertEqual(node.tostring(), """complexContainer(#const=MODEL)/ |-- list_indexed/ | `*- aA(@c)/ | |?- aAA(#c=a)/ | `?- aAB(#c=b)/ |-- list_of/ | `*- $user_name(#c=(0.1+0.1j), #b=True, #f=1.0, #i=1, #s=string)/ |-- table_t[] |-- subContainer(@c, @b, @f, @i, @s)/ `-- array{}""") node = load(EnumContainer) self.assertEqual(node.tostring(), """enumContainer/ `-- value(@c)/ |?- aAA(#c=a)/ `?- aAB(#c=b)/""")
def test_name_of_sub_elements(self): r = ModelNode(self.h5, '/', '', load(SimpleContainer)) self.assertEqual(r.attrs_name, []) self.assertEqual(r.children_name, []) self.assertEqual(len(r), 0) self.assertEqual(r.model.attrs_name, ['c', 'b', 'f', 'i', 's']) self.assertEqual(r.model.children_name, []) self.assertEqual(r.model.consts, []) # # # r = ModelNode(self.h5, '/', '', load(ConstContainer)) self.assertEqual(r.model.consts, [('c', (0.1 + 0.1j)), ('b', True), ('f', 1.0), ('i', 1), ('s', 'string')]) self.assertEqual(r.model.children_name, []) self.assertEqual(r.model.attrs_name, []) self.assertEqual(r.children_name, []) self.assertEqual(r.attrs_name, []) self.assertEqual(len(r), 0) r = ModelNode(self.h5, '/', '', load(ComplexContainer)) self.assertEqual(r.model.attrs_name, []) self.assertEqual(r.model.children_name, ['list_indexed', 'list_of', 'table_t', 'subContainer', 'array']) self.assertEqual(r.model.consts, [('const', 'MODEL')]) self.assertEqual(r.attrs_name, []) self.assertEqual(r.children_name, []) self.assertEqual(len(r), 0)
def test_get_set_child(self): r = ModelNode(self.h5, '/', '', load(ComplexContainer)) self.assertRaises(ModelNodeError, r.set_child, 'trucc') self.assertRaises(HDFNodeError, r.get_child, 'subContainer(tt=2)') self.assertRaises(HDFNodeError, r.get_child, 'subContainer') child = r.set_child('subContainer') self.assertEqual(child.name, 'subContainer') self.assertEqual(child.path, '/subContainer') self.assertTrue(isinstance(child, ModelNode)) self.assertEqual(r._create_group('a'), None) self.assertRaises(ModelNodeError, r.set_child, 'a')
def test_get_set_data(self): r = ModelNode(self.h5, '/', '', load(SimpleContainer)) # get/set attr (data) on model self.assertFalse(r.has_already_attr('i')) r.set_attr('i', 1) self.assertEqual(r.attrs_name, ['i']) self.assertEqual(r.get_attr('i'), 1) self.assertTrue(r.has_already_attr('i')) # get/set attr (data) over the model self.assertRaises(ModelNodeError, r.set_attr, 'tt', 3) super(ModelNode, r).set_attr('tt', 3) self.assertTrue(r.has_already_attr('tt', testalsomodel=False)) self.assertRaises(ModelNodeError, r.get_attr, 'tt') self.assertEqual(super(ModelNode, r).get_attr('tt'), 3)
def test_children_list_of(self): r = ModelNode(self.h5, '/', '', load(ComplexContainer)) r._create_group('list_of') list_of = r.get_child('list_of') print list_of, list_of.model, list_of.model.children_name
def test_can_create_child(self): r = ModelNode(self.h5, '/', '', load(ComplexContainer)) self.assertTrue(r.can_create_child('list_of')) self.assertFalse(r.can_create_child('a'))