MCPcopy Create free account
hub / github.com/PyTables/PyTables / test09

Method test09

tables/tests/test_tables.py:4741–4788  ·  view source on GitHub ↗

Modifying selected values on a large table

(self)

Source from the content-addressed store, hash-verified

4739 self.assertEqual(table.nrows, nrows)
4740
4741 def test09(self):
4742 """Modifying selected values on a large table"""
4743
4744 # Create a new table:
4745 table = self.h5file.create_table(self.h5file.root, "recarray", Rec)
4746 table.nrowsinbuf = self.buffersize # set buffer value
4747
4748 nrows = 100
4749 # append new rows
4750 row = table.row
4751 for i in range(nrows):
4752 row["col1"] = i - 1
4753 row["col2"] = "a" + str(i - 1)
4754 row["col3"] = -1.0
4755 row.append()
4756 table.flush()
4757
4758 # Modify selected rows
4759 for row in table.where("col1 > nrows-3"):
4760 row["col1"] = row.nrow
4761 row["col2"] = "b" + str(row.nrow)
4762 row["col3"] = 0.0
4763 row.update()
4764
4765 # Create the modified recarray
4766 r1 = np.rec.array(
4767 None, shape=nrows, formats="i4,S3,f8", names="col1,col2,col3"
4768 )
4769 for i in range(nrows):
4770 r1["col1"][i] = i - 1
4771 r1["col2"][i] = "a" + str(i - 1)
4772 r1["col3"][i] = -1.0
4773 # modify just the last line
4774 r1["col1"][i] = i
4775 r1["col2"][i] = "b" + str(i)
4776 r1["col3"][i] = 0.0
4777
4778 # Read the modified table
4779 if self.reopen:
4780 self._reopen()
4781 table = self.h5file.root.recarray
4782 table.nrowsinbuf = self.buffersize # set buffer value
4783 r2 = table.read()
4784 if common.verbose:
4785 print("Original table-->", repr(r2))
4786 print("Should look like-->", repr(r1))
4787 self.assertEqual(r1.tobytes(), r2.tobytes())
4788 self.assertEqual(table.nrows, nrows)
4789
4790 def test09b(self):
4791 """Modifying selected values on a large table (alternate values)"""

Callers

nothing calls this directly

Calls 7

whereMethod · 0.80
create_tableMethod · 0.45
appendMethod · 0.45
flushMethod · 0.45
updateMethod · 0.45
_reopenMethod · 0.45
readMethod · 0.45

Tested by

no test coverage detected