code: def test_row_type(self):
      self.assertEqual(
          RowTypeInfo(
              [Types.STRING(), Types.STRING()]
          ).get_field_names(),
          ["f0", "f1"],
      )
      self.assertEqual(
          RowTypeInfo(
              [Types.STRING(), Types.STRING()], ["a", "b"]
          ).get_field_names(),
          ["a", "b"],
      )
  
      self.assertEqual(
          RowTypeInfo([Types.STRING(), Types.STRING()], ["a", "b"])
          == RowTypeInfo([Types.STRING(), Types.STRING()], ["a", "b"]),
          True,
      )
      self.assertEqual(
          RowTypeInfo([Types.STRING(), Types.STRING()], ["a", "b"])
          == RowTypeInfo([Types.STRING(), Types.INT()], ["a", "b"]),
          False,
      )
      self.assertEqual(
          RowTypeInfo(
              [Types.STRING(), Types.STRING()], ["a", "b"]
          ).__str__(),
          "RowTypeInfo(a: String, b: String)",
      )
  
      self.assertEqual(
          Types.ROW([Types.STRING(), Types.STRING()]),
          RowTypeInfo([Types.STRING(), Types.STRING()]),
          True,
      )
  
      self.assertEqual(
          Types.ROW_NAMED(
              ["a", "b"], [Types.STRING(), Types.STRING()]
          ).get_field_names(),
          ["a", "b"],
          True,
      )
  
      self.assertEqual(
          Types.ROW_NAMED(
              ["a", "b"], [Types.STRING(), Types.STRING()]
          ).get_field_types(),
          [Types.STRING(), Types.STRING()],
          True,
      )
  
imports: from pyflink.common.typeinfo import Types, RowTypeInfo, TupleTypeInfo, _from_java_type
  from pyflink.testing.test_case_utils import PyFlinkTestCase
label_desc: Use image node_id 1 for calling the TypeInfoTests obj's underlying member method code with example usage: obj.test_row_type() without return types