code: def testTuple(self):
      s = schema.Tuple(np.int32, str, np.float32)
      s2 = schema.Struct(
          ("field_0", schema.Scalar(dtype=np.int32)),
          ("field_1", schema.Scalar(dtype=str)),
          ("field_2", schema.Scalar(dtype=np.float32)),
      )
      self.assertEqual(s, s2)
      self.assertEqual(s[0], schema.Scalar(dtype=np.int32))
      self.assertEqual(s[1], schema.Scalar(dtype=str))
      self.assertEqual(s[2], schema.Scalar(dtype=np.float32))
      self.assertEqual(
          s[2, 0],
          schema.Struct(
              ("field_2", schema.Scalar(dtype=np.float32)),
              ("field_0", schema.Scalar(dtype=np.int32)),
          ),
      )
      # test iterator behavior
      for i, (v1, v2) in enumerate(zip(s, s2)):
          self.assertEqual(v1, v2)
          self.assertEqual(s[i], v1)
          self.assertEqual(s2[i], v1)
  
imports: from caffe2.python import core, schema
  import numpy
  import unittest
  import pickle
  import random
label_desc: Use image node_id 6 for calling the TestDB obj's underlying member method code with example usage: obj.testTuple() without return types