text: import copy
  import os.path as osp
  
  import mmcv
  import numpy as np
  
  from mmdet.datasets.pipelines import (LoadImageFromFile, LoadImageFromWebcam,
                                        LoadMultiChannelImageFromFiles)
  
  
  class TestLoading(object):
  
      @classmethod
      def setup_class(cls):
          cls.data_prefix = osp.join(osp.dirname(__file__), '../data')
  
      def test_load_img(self):
          results = dict(
              img_prefix=self.data_prefix, img_info=dict(filename='color.jpg'))
          transform = LoadImageFromFile()
          results = transform(copy.deepcopy(results))
          assert results['filename'] == osp.join(self.data_prefix, 'color.jpg')
          assert results['ori_filename'] == 'color.jpg'
          assert results['img'].shape == (288, 512, 3)
          assert results['img'].dtype == np.uint8
          assert results['img_shape'] == (288, 512, 3)
          assert results['ori_shape'] == (288, 512, 3)
          assert repr(transform) == transform.__class__.__name__ + \
                 "(to_float32=False, color_type='color', " + \
                 "file_client_args={'backend': 'disk'})"
  
          # no img_prefix
          results = dict(
              img_prefix=None, img_info=dict(filename='tests/data/color.jpg'))
          transform = LoadImageFromFile()
          results = transform(copy.deepcopy(results))
          assert results['filename'] == 'tests/data/color.jpg'
          assert results['ori_filename'] == 'tests/data/color.jpg'
          assert results['img'].shape == (288, 512, 3)
  
          # to_float32
          transform = LoadImageFromFile(to_float32=True)
          results = transform(copy.deepcopy(results))
          assert results['img'].dtype == np.float32
  
          # gray image
          results = dict(
              img_prefix=self.data_prefix, img_info=dict(filename='gray.jpg'))
          transform = LoadImageFromFile()
          results = transform(copy.deepcopy(results))
          assert results['img'].shape == (288, 512, 3)
          assert results['img'].dtype == np.uint8
  
          transform = LoadImageFromFile(color_type='unchanged')
          results = transform(copy.deepcopy(results))
          assert results['img'].shape == (288, 512)
          assert results['img'].dtype == np.uint8
  
      def test_load_multi_channel_img(self):
          results = dict(
              img_prefix=self.data_prefix,
              img_info=dict(filename=['color.jpg', 'color.jpg']))
          transform = LoadMultiChannelImageFromFiles()
          results = transform(copy.deepcopy(results))
          assert results['filename'] == [
              osp.join(self.data_prefix, 'color.jpg'),
              osp.join(self.data_prefix, 'color.jpg')
          ]
          assert results['ori_filename'] == ['color.jpg', 'color.jpg']
          assert results['img'].shape == (288, 512, 3, 2)
          assert results['img'].dtype == np.uint8
          assert results['img_shape'] == (288, 512, 3, 2)
          assert results['ori_shape'] == (288, 512, 3, 2)
          assert results['pad_shape'] == (288, 512, 3, 2)
          assert results['scale_factor'] == 1.0
          assert repr(transform) == transform.__class__.__name__ + \
                 "(to_float32=False, color_type='unchanged', " + \
                 "file_client_args={'backend': 'disk'})"
  
      def test_load_webcam_img(self):
          img = mmcv.imread(osp.join(self.data_prefix, 'color.jpg'))
          results = dict(img=img)
          transform = LoadImageFromWebcam()
          results = transform(copy.deepcopy(results))
          assert results['filename'] is None
          assert results['ori_filename'] is None
          assert results['img'].shape == (288, 512, 3)
          assert results['img'].dtype == np.uint8
          assert results['img_shape'] == (288, 512, 3)
          assert results['ori_shape'] == (288, 512, 3)
  