def test_create_node_using_schema_object(self): s = Schema() s["a"] = DataType.float64(10) s["b"] = DataType.float32(10) n = Node() n.set(s) sr = n.schema() self.assertEqual(sr.total_strided_bytes(), 8 * 10 + 4 * 10) self.assertEqual(sr["a"].total_strided_bytes(),8 * 10) self.assertEqual(sr["b"].total_strided_bytes(),4 * 10)
def test_simple(self): a_val = uint32(10) b_val = uint32(20) c_val = float64(30.0) n = Node() n['a'] = a_val n['b'] = b_val n['c'] = c_val print(n) d = n.fetch('a').dtype() self.assertEqual(d.id(),DataType.name_to_id("uint32")) print(d)
def test_construction(self): dt = DataType(); dt.set_id(DataType.name_to_id("uint32")) dt.set_number_of_elements(10); dt.set_offset(0); dt.set_stride(4); dt.set_element_bytes(4); dt2 = DataType(dt) self.assertEqual(dt.id(),dt2.id()) self.assertEqual(dt.number_of_elements(),dt2.number_of_elements()) self.assertEqual(dt.offset(),dt2.offset()) self.assertEqual(dt.stride(),dt2.stride()) self.assertEqual(dt.element_bytes(),dt2.element_bytes()) self.assertEqual(dt.endianness(),dt2.endianness()) dt3 = DataType() dt3.set(dtype_name="uint32", num_elements=10, offset=0, stride=4, element_bytes=4) self.assertEqual(dt2.id(),dt3.id()) self.assertEqual(dt2.number_of_elements(),dt3.number_of_elements()) self.assertEqual(dt2.offset(),dt3.offset()) self.assertEqual(dt2.stride(),dt3.stride()) self.assertEqual(dt2.element_bytes(),dt3.element_bytes()) self.assertEqual(dt2.endianness(),dt3.endianness()) print(dt) print(dt2) print(dt3)
def test_explicit_set(self): d = DataType() d.set(dtype_id = DataType.name_to_id("uint32"), num_elements = 1, offset = 0, stride = 4, element_bytes = 4) print(d) self.assertEqual(d.id(),DataType.name_to_id("uint32")) self.assertEqual(d.number_of_elements(),1) self.assertEqual(d.offset(),0) self.assertEqual(d.stride(),4) self.assertEqual(d.element_bytes(),4) self.assertEqual(d.endianness(),0)
def test_id_to_name(self): names = [DataType.id_to_name(i) for i in range(14)] ids = [DataType.name_to_id(n) for n in names] self.assertEqual(ids,list(range(14)))
def test_constructor_helpers(self): # objs print(DataType.empty()); print(DataType.object()); print(DataType.list()); # signed integers print(DataType.int8()); print(DataType.int16()); print(DataType.int32()); print(DataType.int64()); # unsigned integers print(DataType.uint8()); print(DataType.uint16()); print(DataType.uint32()); print(DataType.uint64()); # floating point print(DataType.float32()); print(DataType.float64()); # signed integers print(DataType.c_char()); print(DataType.c_short()); print(DataType.c_int()); print(DataType.c_long()); # unsigned integers print(DataType.c_unsigned_char()); print(DataType.c_unsigned_short()); print(DataType.c_unsigned_int()); print(DataType.c_unsigned_long()); # floating point print(DataType.c_float()); print(DataType.c_double());
def test_id_to_name(self): names = [DataType.id_to_name(i) for i in range(14)] ids = [DataType.name_to_id(n) for n in names] self.assertEqual(ids, list(range(14)))
def test_enum_ids(self): # objs self.assertEqual(DataType.empty().id(), DataType.empty_id()) self.assertEqual(DataType.object().id(), DataType.object_id()) self.assertEqual(DataType.list().id(), DataType.list_id()) # signed integers self.assertEqual(DataType.int8().id(), DataType.int8_id()) self.assertEqual(DataType.int16().id(), DataType.int16_id()) self.assertEqual(DataType.int32().id(), DataType.int32_id()) self.assertEqual(DataType.int64().id(), DataType.int64_id()) # unsigned integers self.assertEqual(DataType.uint8().id(), DataType.uint8_id()) self.assertEqual(DataType.uint16().id(), DataType.uint16_id()) self.assertEqual(DataType.uint32().id(), DataType.uint32_id()) self.assertEqual(DataType.uint64().id(), DataType.uint64_id()) # floating point self.assertEqual(DataType.float32().id(), DataType.float32_id()) self.assertEqual(DataType.float64().id(), DataType.float64_id())
def test_constructor_helpers(self): # objs print(DataType.empty()) print(DataType.object()) print(DataType.list()) # signed integers print(DataType.int8()) print(DataType.int16()) print(DataType.int32()) print(DataType.int64()) # unsigned integers print(DataType.uint8()) print(DataType.uint16()) print(DataType.uint32()) print(DataType.uint64()) # floating point print(DataType.float32()) print(DataType.float64()) # signed integers print(DataType.c_char()) print(DataType.c_short()) print(DataType.c_int()) print(DataType.c_long()) # unsigned integers print(DataType.c_unsigned_char()) print(DataType.c_unsigned_short()) print(DataType.c_unsigned_int()) print(DataType.c_unsigned_long()) # floating point print(DataType.c_float()) print(DataType.c_double())