code: def test_sqlite_row_hash_cmp(self):
      # Checks if the row object compares and hashes correctly.
      row_1 = self.con.execute("select 1 as a, 2 as b").fetchone()
      row_2 = self.con.execute("select 1 as a, 2 as b").fetchone()
      row_3 = self.con.execute("select 1 as a, 3 as b").fetchone()
      row_4 = self.con.execute("select 1 as b, 2 as a").fetchone()
      row_5 = self.con.execute("select 2 as b, 1 as a").fetchone()
  
      self.assertTrue(row_1 == row_1)
      self.assertTrue(row_1 == row_2)
      self.assertFalse(row_1 == row_3)
      self.assertFalse(row_1 == row_4)
      self.assertFalse(row_1 == row_5)
      self.assertFalse(row_1 == object())
  
      self.assertFalse(row_1 != row_1)
      self.assertFalse(row_1 != row_2)
      self.assertTrue(row_1 != row_3)
      self.assertTrue(row_1 != row_4)
      self.assertTrue(row_1 != row_5)
      self.assertTrue(row_1 != object())
  
      with self.assertRaises(TypeError):
          row_1 > row_2
      with self.assertRaises(TypeError):
          row_1 < row_2
      with self.assertRaises(TypeError):
          row_1 >= row_2
      with self.assertRaises(TypeError):
          row_1 <= row_2
  
      self.assertEqual(hash(row_1), hash(row_2))
  
imports: import unittest
  import sqlite3
  from collections.abc import Sequence
  from .util import memory_database
  from .util import MemoryDatabaseMixin
label_desc: Use image node_id 9 for calling the RowFactoryTests obj's underlying member method code with example usage: obj.test_sqlite_row_hash_cmp() without return types