code: def test_concat(self, tensor_splits, gc, dc):
      # Input Size: 1 -> inf
      axis, _, splits = tensor_splits
      concat_result, split_info = Functional.Concat(
          *splits, axis=axis, device_option=gc
      )
  
      concat_result_ref = np.concatenate(splits, axis=axis)
      split_info_ref = np.array([a.shape[axis] for a in splits])
  
      np.testing.assert_array_equal(
          concat_result,
          concat_result_ref,
          err_msg="Functional Concat result mismatch",
      )
  
      np.testing.assert_array_equal(
          split_info,
          split_info_ref,
          err_msg="Functional Concat split info mismatch",
      )
  
file_path: pytorch/caffe2/python/functional_test.py
imports: import unittest
  from caffe2.python import core
  from hypothesis import given
  import hypothesis.strategies
  import caffe2.python.hypothesis_test_util
  from caffe2.python import workspace
  from caffe2.python.functional import Functional
  import numpy
label_desc: Use image node_id 2 for calling the TestFunctional obj's underlying member method code with example usage: obj.test_concat(tensor_splits, gc, dc) without return types