def testGetNestedField(self): """Check the NestedRecArray.field method. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) # Test top level nested fields # The info field buffer = [ [('Paco', 'Perez'), (10, 20, 30)], [('Maria', 'Luisa'), (0, 2.0, 10)], [('C3Peanut', 'Tofu'), (10, 30, 20)] ] my_descr = [('name', [('first','a9'), ('second','a9')]), ('coord', [('x','Float32'), ('y', 'f4'), ('z', 'f4')])] model = nra.array(buffer, descr=my_descr) modelFirst = model.field('name/first') nra1 = nra0.field('info') nra1First = nra1.field('name/first') nra2 = nra1.field('name') nra3=nra2.field('first') self.assert_(common.areArraysEqual(model, nra1)) self.assert_(common.areArraysEqual(modelFirst, nra1First)) self.assert_(common.areArraysEqual(modelFirst, nra3))
def test02_NestedRecArrayCompat(self): """Creating a compatible nested record array``.""" tbl = self.h5file.create_table("/", "test", self._TestTDescr, title=self._getMethodName()) nrarr = numpy.array(testABuffer, dtype=tbl.description._v_nested_descr) self.assertTrue(common.areArraysEqual(nrarr, self._testAData), "Can not create a compatible structured array.")
def _test(self): self.assert_("/ExtendibleArray" in self.h5file) arr = self.h5file.getNode("/ExtendibleArray") self.assert_(isinstance(arr, tables.EArray)) self.assertEqual(arr.byteorder, "big") self.assertEqual(arr.atom.type, "int32") self.assertEqual(arr.shape, (10, 5)) self.assertEqual(arr.extdim, 0) self.assertEqual(len(arr), 10) data = arr.read() expectedData = numpy.array( [ [1, 1, 1, 3, 3], [1, 1, 1, 3, 3], [1, 1, 1, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], ], dtype=arr.atom.type, ) self.assert_(common.areArraysEqual(data, expectedData))
def test_ref_str(self): array = self.h5file.get_node('/var') self.assertTrue(common.areArraysEqual( array[1][0][0], numpy.array([[116], [101], [115], [116]], dtype=numpy.uint16)))
def test_double_ref(self): array = self.h5file.get_node('/var') self.assertTrue( common.areArraysEqual( array[2][0][0][1][0], numpy.array([[105], [110], [115], [105], [100], [101]], dtype=numpy.uint16)))
def testNRAFromRA(self): """Check the array function with a RecArray instance. """ buffer_ = [('Cuke', 123, (45, 67)), ('Tader', 321, (76, 54))] names = ['name', 'value', 'pair'] formats = ['a6', 'Int8', '(2,)Int16'] ra = numarray.records.array( buffer_, names=names, formats=formats) ## buffer_, names=names, formats=formats, aligned=True) names1 = ['newName', 'newValue', 'newPair'] nra0 = nra.array(buffer=ra, descr=zip(names1, formats)) nra1 = nra.array(buffer=buffer_, descr=zip(names1, formats)) self.assert_(common.areArraysEqual(nra0, nra1)) # Bad number of fields badFormats = ['Int8', '(2,)Int16'] self.assertRaises(ValueError, nra.array, buffer=ra, formats=badFormats) # Bad format in the first field badFormats = ['a9', 'Int8', '(2,)Int16'] self.assertRaises(ValueError, nra.array, buffer=ra, formats=badFormats)
def test05a_modifyColumns(self): """Modifying one nested column (modifyColumns).""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) tbl.flush() nColumn = self._testNestedCol # Get the nested column data and swap the first and last rows. raTable = self._testAData.copy() raColumn = raTable[nColumn] (raColumn[0], raColumn[-1]) = (raColumn[-1].copy(), raColumn[0].copy()) newdtype = numpy.dtype([(nColumn, raTable.dtype.fields[nColumn][0])]) # Write the resulting column and re-read the whole table. tbl.modifyColumns(names=[nColumn], columns=raColumn) tbl.flush() if self.reopen: self._reopen() tbl = self.h5file.root.test raReadTable = tbl.read() if common.verbose: print "Table read:", raReadTable print "Should look like:", raTable # Compare it to the written one. self.assert_(common.areArraysEqual(raTable, raReadTable), "Written and read values differ.")
def test04_modifyColumn(self): """Modifying one single nested column (modifyColumn).""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) tbl.flush() nColumn = self._testNestedCol # Get the nested column data and swap the first and last rows. raTable = self._testAData.copy() raColumn = raTable[nColumn] # The next will not work until NestedRecords supports copies (raColumn[0], raColumn[-1]) = (raColumn[-1], raColumn[0]) # Write the resulting column and re-read the whole table. tbl.modifyColumn(colname=nColumn, column=raColumn) tbl.flush() if self.reopen: self._reopen() tbl = self.h5file.root.test raReadTable = tbl.read() if common.verbose: print "Table read:", raReadTable print "Should look like:", raTable # Compare it to the written one. self.assert_(common.areArraysEqual(raTable, raReadTable), "Written and read values differ.")
def testNRAFromNRA(self): """Check the array function with a NestedRecArray instance. """ nra0 = nra.array(buffer=self.buffer, descr=self.descr) my_Descr = [('ID', 'Int64'), ('data', [('name', [('first', 'a9'), ('second', 'a9')]), ('coord', [('x', 'Float32'), ('y', 'f4'), ('z', 'f4')])])] nra1 = nra.array(buffer=self.buffer, descr=my_Descr) nra2 = nra.array(buffer=nra0, descr=my_Descr) self.assert_(common.areArraysEqual(nra2, nra1)) # Bad number of fields badDescr = [('data', [('name', [('first', 'a9'), ('second', 'a9')]), ('coord', [('x', 'Float32'), ('y', 'f4'), ('z', 'f4')])])] self.assertRaises(ValueError, nra.array, buffer=nra0, descr=badDescr) # Bad format in the first field badDescr = [('ID', 'b1'), ('data', [('name', [('first', 'a9'), ('second', 'a9')]), ('coord', [('x', 'Float32'), ('y', 'f4'), ('z', 'f4')])])] self.assertRaises(ValueError, nra.array, buffer=nra0, descr=badDescr)
def test05b_modifyColumns(self): """Modifying two nested columns (modify_columns).""" tbl = self.h5file.create_table("/", "test", self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) tbl.flush() # Get the nested column data and swap the first and last rows. colnames = ["x", "color"] # Get the first two columns raCols = numpy.rec.fromarrays( [self._testAData["x"].copy(), self._testAData["color"].copy()], dtype=[("x", "(2,)i4"), ("color", "1a2")] ) # descr=tbl.description._v_nested_descr[0:2]) # or... # names=tbl.description._v_nested_names[0:2], # formats=tbl.description._v_nested_formats[0:2]) (raCols[0], raCols[-1]) = (raCols[-1].copy(), raCols[0].copy()) # Write the resulting columns tbl.modify_columns(names=colnames, columns=raCols) tbl.flush() if self.reopen: self._reopen() tbl = self.h5file.root.test # Re-read the appropriate columns raCols2 = numpy.rec.fromarrays([tbl.cols._f_col("x"), tbl.cols._f_col("color")], dtype=raCols.dtype) if common.verbose: print("Table read:", raCols2) print("Should look like:", raCols) # Compare it to the written one. self.assertTrue(common.areArraysEqual(raCols, raCols2), "Written and read values differ.")
def test06_modifyRows(self): "Checking modifying several rows at once (using nestedrecarray)" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) tbl.flush() # Get the nested record and swap the first and last rows. raTable = self._testAData.copy() (raTable[0], raTable[-1]) = (raTable[-1].copy(), raTable[0].copy()) # Write the resulting nested record and re-read the whole table. tbl.modifyRows(start=0, stop=2, rows=raTable) tbl.flush() if self.reopen: self._reopen() tbl = self.h5file.root.test raReadTable = tbl.read() if common.verbose: print "Table read:", raReadTable print "Should look like:", raTable # Compare it to the written one. self.assert_(common.areArraysEqual(raTable, raReadTable), "Written and read values differ.")
def test(self): self.assertIn('/ExtendibleArray', self.h5file) arr = self.h5file.get_node('/ExtendibleArray') self.assertIsInstance(arr, tables.EArray) self.assertEqual(arr.byteorder, 'big') self.assertEqual(arr.atom.type, 'int32') self.assertEqual(arr.shape, (10, 5)) self.assertEqual(arr.extdim, 0) self.assertEqual(len(arr), 10) data = arr.read() expectedData = numpy.array([ [1, 1, 1, 3, 3], [1, 1, 1, 3, 3], [1, 1, 1, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0]], dtype=arr.atom.type) self.assertTrue(common.areArraysEqual(data, expectedData))
def testNRAFromNRA(self): """Check the array function with a NestedRecArray instance. """ nra0 = nra.array(buffer=self.buffer, descr=self.descr) my_Descr = [('ID', 'Int64'), ('data', [('name', [('first','a9'), ('second','a9')]), ('coord', [('x','Float32'), ('y', 'f4'), ('z', 'f4')])])] nra1 = nra.array(buffer=self.buffer, descr=my_Descr) nra2 = nra.array(buffer=nra0, descr=my_Descr) self.assert_(common.areArraysEqual(nra2, nra1)) # Bad number of fields badDescr = [ ('data', [('name', [('first','a9'), ('second','a9')]), ('coord', [('x','Float32'), ('y', 'f4'), ('z', 'f4')])])] self.assertRaises(ValueError, nra.array, buffer=nra0, descr=badDescr) # Bad format in the first field badDescr = [('ID', 'b1'), ('data', [('name', [('first','a9'), ('second','a9')]), ('coord', [('x','Float32'), ('y', 'f4'), ('z', 'f4')])])] self.assertRaises(ValueError, nra.array, buffer=nra0, descr=badDescr)
def test_ref_utf_str(self): array = self.h5file.get_node('/ANN/my_arr') self.assertTrue(common.areArraysEqual( array[0][0][0], numpy.array([0, 0], dtype=numpy.uint64)))
def _test(self): self.assertTrue('/ExtendibleArray' in self.h5file) arr = self.h5file.get_node('/ExtendibleArray') self.assertTrue(isinstance(arr, tables.EArray)) self.assertEqual(arr.byteorder, 'big') self.assertEqual(arr.atom.type, 'int32') self.assertEqual(arr.shape, (10, 5)) self.assertEqual(arr.extdim, 0) self.assertEqual(len(arr), 10) data = arr.read() expectedData = numpy.array([ [1, 1, 1, 3, 3], [1, 1, 1, 3, 3], [1, 1, 1, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0], [2, 0, 0, 0, 0]], dtype=arr.atom.type) self.assertTrue(common.areArraysEqual(data, expectedData))
def test_ref_str(self): array = self.h5file.get_node('/var') self.assertTrue( common.areArraysEqual( array[1][0][0], numpy.array([[116], [101], [115], [116]], dtype=numpy.uint16)))
def test(self): arr = self.h5file.get_node('/Test') data = arr.read() expectedData = numpy.array( [(1, 11), (2, 12), (3, 13)], dtype={'names': ['A', 'B'], 'formats': ['<u4', '<u4'], 'offsets': [0, 4], 'itemsize': 16}) self.assertTrue(common.areArraysEqual(data, expectedData))
def testNRAadd(self): """Check the addition of nested arrays. """ ra1 = numarray.records.array([[1, 2], [3, 4]], formats=['Int32', 'Int32']) ra2 = numarray.records.array([[5, 6], [7, 8]], formats=['Int32', 'Int32']) ra3 = ra1 + ra2 nra1 = nra.array(buffer=ra1, descr=[('c1', 'Int32'), ('c2', 'Int32')]) nra2 = nra.array(buffer=ra2, descr=[('a', 'Int32'), ('b', 'Int32')]) nra3 = nra1 + nra2 nra4 = nra1 + ra1 self.assert_(common.areArraysEqual(nra3._flatArray, ra3)) self.assertEqual(nra3.descr, nra1.descr) self.assert_( common.areArraysEqual(nra4._flatArray, nra1._flatArray + ra1)) self.assertRaises(TypeError, nra.NestedRecArray.__add__, nra1, 3)
def test02_NestedRecArrayCompat(self): """Creating a compatible ``NestedRecArray``.""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) nrarr = numpy.array(testABuffer, dtype=tbl.description._v_nestedDescr) self.assert_(common.areArraysEqual(nrarr, self._testAData), "Can not create a compatible record array.")
def testGetBottomLevelField(self): """Check the NestedRecArray.field method. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) # Test bottom level fields nra1 = nra0.field('info/coord/x') ra1 = numarray.array([10, 0, 10], type='Float32') self.assert_(common.areArraysEqual(nra1, ra1))
def testGetTopLevelFlatField(self): """Check the NestedRecArray.field method. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) # Test top level flat fields nra1 = nra0.field('position') ra1 = numarray.array([1, 2, 3], type='Int64') self.assert_(common.areArraysEqual(nra1, ra1))
def testNRAFromArrayList(self): """Check the fromarrays function. """ # arrayList argument is a list of lists nra0 = nra.array(buffer=self.buffer, descr=self.descr) nra1 = nra.fromarrays(self.array_list, formats=self.formats) nra2 = nra.fromarrays(self.array_list, formats=self.formats, names=self.names) nra3 = nra.fromarrays(self.array_list, descr=self.descr) self.assertEqual(common.areArraysEqual(nra1, nra2), False) self.assert_(common.areArraysEqual(nra2, nra3)) self.assert_(common.areArraysEqual(nra0, nra2)) # arrayList argument is a list of NestedRecArrays nra0 = nra.array(buffer=[[1,4],[2,4]], formats=['f8','f4']) self.assertRaises(TypeError, nra.fromarrays, [nra0, nra0.field('c2')], formats=[['f8','f4'],'f4'])
def testNestedRecordCreation(self): """Check the creation of NestedRecord instances from NestedRecArrays. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) nrecord = nra0[0] self.assert_(isinstance(nrecord, nra.NestedRecord)) self.assert_(common.areArraysEqual(nra0, nrecord.array)) self.assertEqual(nrecord.row, 0)
def test03_NRA(self): """Creating a table from a nested record array object.""" tbl = self.h5file.create_table("/", "test", self._testAData, title=self._getMethodName()) tbl.flush() readAData = tbl.read() if common.verbose: print("Read data:", readAData) print("Should look like:", self._testAData) self.assertTrue(common.areArraysEqual(self._testAData, readAData), "Written and read values differ.")
def testNRAadd(self): """Check the addition of nested arrays. """ ra1 = numarray.records.array([[1, 2], [3, 4]], formats=['Int32', 'Int32']) ra2 = numarray.records.array([[5, 6], [7, 8]], formats=['Int32', 'Int32']) ra3 = ra1 + ra2 nra1 = nra.array(buffer=ra1, descr=[('c1', 'Int32'), ('c2', 'Int32')]) nra2 = nra.array(buffer=ra2, descr=[('a', 'Int32'), ('b', 'Int32')]) nra3 = nra1 + nra2 nra4 = nra1 + ra1 self.assert_(common.areArraysEqual(nra3._flatArray, ra3)) self.assertEqual(nra3.descr, nra1.descr) self.assert_(common.areArraysEqual(nra4._flatArray, nra1._flatArray + ra1)) self.assertRaises(TypeError, nra.NestedRecArray.__add__, nra1, 3)
def testFlattenNestedRecord(self): """Check the flattening of NestedRecord instances. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) nrecord = nra0[0] frecord = nrecord.asRecord() self.assert_(isinstance(frecord, numarray.records.Record)) self.assert_(common.areArraysEqual(nra0.asRecArray(), frecord.array)) self.assertEqual(nrecord.row, frecord.row)
def test04_NRA2(self): """Creating a table from a generated nested record array object.""" tbl = self.h5file.create_table("/", "test", self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) readAData = tbl.read() tbl2 = self.h5file.create_table("/", "test2", readAData, title=self._getMethodName()) readAData2 = tbl2.read() self.assertTrue(common.areArraysEqual(self._testAData, readAData2), "Written and read values differ.")
def testNRAFromArrayList(self): """Check the fromarrays function. """ # arrayList argument is a list of lists nra0 = nra.array(buffer=self.buffer, descr=self.descr) nra1 = nra.fromarrays(self.array_list, formats=self.formats) nra2 = nra.fromarrays(self.array_list, formats=self.formats, names=self.names) nra3 = nra.fromarrays(self.array_list, descr=self.descr) self.assertEqual(common.areArraysEqual(nra1, nra2), False) self.assert_(common.areArraysEqual(nra2, nra3)) self.assert_(common.areArraysEqual(nra0, nra2)) # arrayList argument is a list of NestedRecArrays nra0 = nra.array(buffer=[[1, 4], [2, 4]], formats=['f8', 'f4']) self.assertRaises(TypeError, nra.fromarrays, [nra0, nra0.field('c2')], formats=[['f8', 'f4'], 'f4'])
def test01_read_out_arg(self): tbl = self.h5file.create_table("/", "test", self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) if self.reopen: self._reopen() tbl = self.h5file.root.test nrarr = numpy.rec.array(testABuffer, dtype=tbl.description._v_nested_descr) # When reading an entire nested column, the output array must contain # all fields in the table. The output buffer will contain the contents # of all fields. The selected column alone will be returned from the # method call. all_cols = numpy.empty(1, tbl.dtype) tblcols = tbl.read(start=0, step=2, field="Info", out=all_cols) nrarrcols = nrarr["Info"][0::2] if common.verbose: print("Read cols:", tblcols) print("Should look like:", nrarrcols) self.assertTrue(common.areArraysEqual(nrarrcols, tblcols), "Original array are retrieved doesn't match.") self.assertTrue(common.areArraysEqual(nrarr[0::2], all_cols), "Output buffer does not match full table.")
def testCreateNestedRecArray(self): """Check the array function. """ flatarray = numarray.records.array(self.flat_buffer, self.flat_formats) common.verbosePrint( """\nTesting the creation of a nested """ """recarray: buffer + formats""") nra1 = nra.array(formats=self.formats, buffer=self.buffer) common.verbosePrint( """\nTesting the creation of a nested recarray: buffer + """ """formats + names""") nra2 = nra.array(names=self.names, formats=self.formats, buffer=self.buffer) common.verbosePrint( """\nTesting the creation of a nested recarray: buffer + descr""") nra3 = nra.array(descr=self.descr, buffer=self.buffer) self.assertEqual(common.areArraysEqual(nra1, nra2), False) self.assert_(common.areArraysEqual(nra2, nra3))
def testCreateNestedRecArray(self): """Check the array function. """ flatarray = numarray.records.array(self.flat_buffer, self.flat_formats) common.verbosePrint("""\nTesting the creation of a nested """ """recarray: buffer + formats""") nra1 = nra.array(formats=self.formats, buffer=self.buffer) common.verbosePrint( """\nTesting the creation of a nested recarray: buffer + """ """formats + names""") nra2 = nra.array(names=self.names, formats=self.formats, buffer=self.buffer) common.verbosePrint( """\nTesting the creation of a nested recarray: buffer + descr""") nra3 = nra.array(descr=self.descr, buffer=self.buffer) self.assertEqual(common.areArraysEqual(nra1, nra2), False) self.assert_(common.areArraysEqual(nra2, nra3))
def test03_NRA(self): """Creating a table from a NestedRecArray object.""" tbl = self.h5file.createTable( '/', 'test', self._testAData, title=self._getMethodName()) tbl.flush() readAData = tbl.read() if common.verbose: print "Read data:", readAData print "Should look like:", self._testAData self.assert_(common.areArraysEqual(self._testAData, readAData), "Written and read values differ.")
def test00_append(self): """Appending a set of rows.""" tbl = self.h5file.create_table("/", "test", self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) tbl.flush() if self.reopen: self._reopen() tbl = self.h5file.root.test readAData = tbl.read() self.assertTrue(common.areArraysEqual(self._testAData, readAData), "Written and read values differ.")
def test04_NRA2(self): """Creating a table from a generated NestedRecArray object.""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) readAData = tbl.read() tbl2 = self.h5file.createTable( '/', 'test2', readAData, title=self._getMethodName()) readAData2 = tbl2.read() self.assert_(common.areArraysEqual(self._testAData, readAData2), "Written and read values differ.")
def testSetSlice(self): """Set a nested array slice. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) buffer = [[10, (('Paco', 'Perez'), (10, 20, 30))], [20, (('Maria', 'Luisa'), (0, 2.0, 10))], [30, (('C3Peanut', 'Tofu'), (10, 30, 20))]] model = nra.array(buffer, descr=self.descr) nra0[0:3] = model[0:3] self.assert_(common.areArraysEqual(nra0, model))
def test02_read(self): """Checking Table.read with a nested Column.""" tbl = self.h5file.create_table("/", "test", self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) if self.reopen: self._reopen() tbl = self.h5file.root.test tblcols = tbl.read(start=0, step=2, field="Info/value") nrarr = numpy.rec.array(testABuffer, dtype=tbl.description._v_nested_descr) nrarrcols = nrarr["Info"]["value"][0::2] self.assertTrue(common.areArraysEqual(nrarrcols, tblcols), "Original array are retrieved doesn't match.")
def testGetNestedField(self): """Check the NestedRecArray.field method. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) # Test top level nested fields # The info field buffer = [[('Paco', 'Perez'), (10, 20, 30)], [('Maria', 'Luisa'), (0, 2.0, 10)], [('C3Peanut', 'Tofu'), (10, 30, 20)]] my_descr = [('name', [('first', 'a9'), ('second', 'a9')]), ('coord', [('x', 'Float32'), ('y', 'f4'), ('z', 'f4')])] model = nra.array(buffer, descr=my_descr) modelFirst = model.field('name/first') nra1 = nra0.field('info') nra1First = nra1.field('name/first') nra2 = nra1.field('name') nra3 = nra2.field('first') self.assert_(common.areArraysEqual(model, nra1)) self.assert_(common.areArraysEqual(modelFirst, nra1First)) self.assert_(common.areArraysEqual(modelFirst, nra3))
def test00_append(self): """Appending a set of rows.""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) tbl.flush() if self.reopen: self._reopen() tbl = self.h5file.root.test readAData = tbl.read() self.assert_(common.areArraysEqual(self._testAData, readAData), "Written and read values differ.")
def testSetSlice(self): """Set a nested array slice. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) buffer = [ [10, (('Paco', 'Perez'), (10, 20, 30))], [20, (('Maria', 'Luisa'), (0, 2.0, 10))], [30, (('C3Peanut', 'Tofu'), (10, 30, 20))] ] model = nra.array(buffer, descr=self.descr) nra0[0:3] = model[0:3] self.assert_(common.areArraysEqual(nra0, model))
def test(self): self.assertIn('/TestArray', self.h5file) arr = self.h5file.get_node('/TestArray') self.assertIsInstance(arr, tb.Array) self.assertEqual(arr.atom.type, self.type) self.assertEqual(arr.byteorder, self.byteorder) self.assertEqual(arr.shape, (6, 5)) data = arr.read() expectedData = np.array( [[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]], dtype=self.type) self.assertTrue(common.areArraysEqual(data, expectedData))
def _test(self): self.assert_("/TestArray" in self.h5file) arr = self.h5file.getNode("/TestArray") self.assert_(isinstance(arr, tables.Array)) self.assertEqual(arr.atom.type, self.type) self.assertEqual(arr.byteorder, self.byteorder) self.assertEqual(arr.shape, (6, 5)) data = arr.read() expectedData = numpy.array( [[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]], dtype=self.type, ) self.assert_(common.areArraysEqual(data, expectedData))
def _test(self): self.assert_('/TestArray' in self.h5file) arr = self.h5file.getNode('/TestArray') self.assert_(isinstance(arr, tables.Array)) self.assertEqual(arr.atom.type, self.type) self.assertEqual(arr.byteorder, self.byteorder) self.assertEqual(arr.shape, (6, 5)) data = arr.read() expectedData = numpy.array( [[0, 1, 2, 3, 4], [1, 2, 3, 4, 5], [2, 3, 4, 5, 6], [3, 4, 5, 6, 7], [4, 5, 6, 7, 8], [5, 6, 7, 8, 9]], dtype=self.type) self.assert_(common.areArraysEqual(data, expectedData))
def testSetRow2NestedRecord(self): """Check the NestedRecArray.__setitem__ with NestedRecord instances. """ nra0 = nra.array(descr=self.descr, buffer=self.buffer) buffer = [[10, (('Paco', 'Perez'), (10, 20, 30))], [20, (('Maria', 'Luisa'), (0, 2.0, 10))], [30, (('C3Peanut', 'Tofu'), (10, 30, 20))]] model = nra.array(buffer, descr=self.descr) nra0[0] = model[0] nra0[1] = model[1] nra0[2] = model[2] self.assert_(common.areArraysEqual(nra0, model))
def test02_read(self): """Checking Table.read with a nested Column.""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) if self.reopen: self._reopen() tbl = self.h5file.root.test tblcols = tbl.read(start=0, step=2, field='Info/value') nrarr = numpy.rec.array(testABuffer, dtype=tbl.description._v_nestedDescr) nrarrcols = nrarr['Info']['value'][0::2] self.assert_(common.areArraysEqual(nrarrcols, tblcols), "Original array are retrieved doesn't match.")
def test04a__getitem__(self): """Checking cols.__getitem__() with subgroups with a single index.""" tbl = self.h5file.create_table("/", "test", self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) if self.reopen: self._reopen() tbl = self.h5file.root.test nrarr = numpy.array(testABuffer, dtype=tbl.description._v_nested_descr) tblcols = tbl.cols._f_col("Info")[1] nrarrcols = nrarr["Info"][1] if common.verbose: print("Read cols:", tblcols) print("Should look like:", nrarrcols) self.assertTrue(common.areArraysEqual(nrarrcols, tblcols), "Original array are retrieved doesn't match.")
def test04a__getitem__(self): """Checking cols.__getitem__() with subgroups with a single index.""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) if self.reopen: self._reopen() tbl = self.h5file.root.test nrarr = numpy.array(testABuffer, dtype=tbl.description._v_nestedDescr) tblcols = tbl.cols._f_col('Info')[1] nrarrcols = nrarr['Info'][1] if common.verbose: print "Read cols:", tblcols print "Should look like:", nrarrcols self.assert_(common.areArraysEqual(nrarrcols, tblcols), "Original array are retrieved doesn't match.")
def areDescriptionsEqual(desc1, desc2): """ Are both `desc1` and `desc2` equivalent descriptions? The arguments may be description objects (``IsDescription``, ``Description``) or dictionaries. """ if isinstance(desc1, t.Col): # This is a rough comparison but it suffices here. return (desc1.type == desc2.type and desc2.dtype == desc2.dtype and desc1._v_pos == desc2._v_pos #and desc1.dflt == desc2.dflt) and common.areArraysEqual(desc1.dflt, desc2.dflt)) if hasattr(desc1, '_v_colObjects'): # quacks like a Description cols1 = desc1._v_colObjects elif hasattr(desc1, 'columns'): # quacks like an IsDescription cols1 = desc1.columns else: # hope it quacks like a dictionary cols1 = desc1 if hasattr(desc2, '_v_colObjects'): # quacks like a Description cols2 = desc2._v_colObjects elif hasattr(desc2, 'columns'): # quacks like an IsDescription cols2 = desc2.columns else: # hope it quacks like a dictionary cols2 = desc2 if len(cols1) != len(cols2): return False for (colName, colobj1) in cols1.iteritems(): colobj2 = cols2[colName] if colName == '_v_pos': # The comparison may not be quite exhaustive! return colobj1 == colobj2 if not areDescriptionsEqual(colobj1, colobj2): return False return True
def test01_read(self): """Checking Table.read with subgroups with a range index with step.""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) tbl.append(self._testAData) if self.reopen: self._reopen() tbl = self.h5file.root.test nrarr = numpy.rec.array(testABuffer, dtype=tbl.description._v_nestedDescr) tblcols = tbl.read(start=0, step=2, field='Info') nrarrcols = nrarr['Info'][0::2] if common.verbose: print "Read cols:", tblcols print "Should look like:", nrarrcols self.assert_(common.areArraysEqual(nrarrcols, tblcols), "Original array are retrieved doesn't match.")
def test01_row(self): """Appending individual rows.""" tbl = self.h5file.createTable( '/', 'test', self._TestTDescr, title=self._getMethodName()) row = tbl.row # Add the first row self._appendRow(row, 0) # Add the rest of the rows field by field. for i in range(1, len(self._testAData)): self._appendRow(row, i) tbl.flush() if self.reopen: self._reopen() tbl = self.h5file.root.test readAData = tbl.read() self.assert_(common.areArraysEqual(self._testAData, readAData), "Written and read values differ.")