code: def test_cat_images(self):
      image1 = np.zeros((40, 40, 3), dtype=np.uint8)
      image2 = np.zeros((40, 40, 3), dtype=np.uint8)
      image = BaseLocalVisualizer()._cat_image([image1, image2], axis=1)
      self.assertEqual(image.shape, (40, 80, 3))
  
      image = BaseLocalVisualizer()._cat_image([], axis=0)
      self.assertIsNone(image)
  
      image = BaseLocalVisualizer()._cat_image([image1, None], axis=0)
      self.assertEqual(image.shape, (40, 40, 3))
  
file_path: mmocr/tests/test_visualization/test_base_visualizer.py
imports: from unittest import TestCase
  import numpy
  from mmocr.visualization import BaseLocalVisualizer
label_desc: Use image node_id 4 for calling the TestBaseLocalVisualizer obj's underlying member method code with example usage: obj.test_cat_images() without return types