code: def test_TableWidget():
      w = pg.TableWidget(sortable=False)
  
      # Test all input data types
      w.setData(listOfTuples)
      assertTableData(w, listOfTuples)
  
      w.setData(listOfLists)
      assertTableData(w, listOfTuples)
  
      w.setData(plainArray)
      assertTableData(w, listOfTuples)
  
      w.setData(recordArray)
      assertTableData(w, listOfTuples)
  
      w.setData(dictOfLists)
      assertTableData(w, transposed)
  
      w.appendData(dictOfLists)
      assertTableData(w, transposed * 2)
  
      w.setData(listOfDicts)
      assertTableData(w, listOfTuples)
  
      w.appendData(listOfDicts)
      assertTableData(w, listOfTuples * 2)
  
      # Test sorting
      w.setData(listOfTuples)
      w.sortByColumn(0, pg.QtCore.Qt.SortOrder.AscendingOrder)
      assertTableData(w, sorted(listOfTuples, key=lambda a: a[0]))
  
      w.sortByColumn(1, pg.QtCore.Qt.SortOrder.AscendingOrder)
      assertTableData(w, sorted(listOfTuples, key=lambda a: a[1]))
  
      w.sortByColumn(2, pg.QtCore.Qt.SortOrder.AscendingOrder)
      assertTableData(w, sorted(listOfTuples, key=lambda a: a[2]))
  
      w.setSortMode(1, "text")
      w.sortByColumn(1, pg.QtCore.Qt.SortOrder.AscendingOrder)
      assertTableData(w, sorted(listOfTuples, key=lambda a: str(a[1])))
  
      w.setSortMode(1, "index")
      w.sortByColumn(1, pg.QtCore.Qt.SortOrder.AscendingOrder)
      assertTableData(w, listOfTuples)
  
      # Test formatting
      item = w.item(0, 2)
      assert item.text() == ("%0.3g" % item.value)
  
      w.setFormat("%0.6f")
      assert item.text() == ("%0.6f" % item.value)
  
      w.setFormat("X%0.7f", column=2)
      assert isinstance(item.value, float)
      assert item.text() == ("X%0.7f" % item.value)
  
      # test setting items that do not exist yet
      w.setFormat("X%0.7f", column=3)
  
      # test append uses correct formatting
      w.appendRow(("x", 10, 7.3))
      item = w.item(w.rowCount() - 1, 2)
      assert isinstance(item.value, float)
      assert item.text() == ("X%0.7f" % item.value)
  
      # test reset back to defaults
      w.setFormat(None, column=2)
      assert isinstance(item.value, float)
      assert item.text() == ("%0.6f" % item.value)
  
      w.setFormat(None)
      assert isinstance(item.value, float)
      assert item.text() == ("%0.3g" % item.value)
  
      # test function formatter
      def fmt(item):
          if isinstance(item.value, float):
              return "%d %f" % (item.index, item.value)
          else:
              return str(item.value)
  
      w.setFormat(fmt)
      assert isinstance(item.value, float)
      assert isinstance(item.index, int)
      assert item.text() == ("%d %f" % (item.index, item.value))
  
imports: from collections import OrderedDict
  import numpy
  import pyqtgraph
label_desc: Use image node_id 2 for calling a global function with example usage: test_TableWidget() and returns: unknown, str