code: def test_HW1_image(self):
      table = np.mod(np.arange(256) + 10, 256).astype(np.uint8)
      tables = [
          ("array-1d", table),
          ("array-2d", table[:, np.newaxis]),
          ("array-3d", table[np.newaxis, :, np.newaxis]),
          ("list", [table]),
      ]
  
      for subtable_descr, subtable in tables:
          with self.subTest(table_type=subtable_descr):
              image = np.uint8(
                  [
                      [0, 50, 100, 245, 254, 255],
                      [1, 51, 101, 246, 255, 0],
                  ]
              )
              image = image[:, :, np.newaxis]
  
              image_aug = ia.apply_lut_(image, subtable)
  
              expected = np.uint8(
                  [[10, 60, 110, 255, 8, 9], [11, 61, 111, 0, 9, 10]]
              )
              expected = expected[:, :, np.newaxis]
              assert np.array_equal(image_aug, expected)
              # (H,W,1) images always lead to a copy
              assert image_aug is not image
              assert image_aug.shape == (2, 6, 1)
              assert image_aug.dtype.name == "uint8"
  
imports: from __future__ import print_function, division, absolute_import
  import time
  import warnings
  import sys
  import matplotlib
  import numpy
  import six.moves
  import cv2
  import imgaug
  from imgaug import dtypes
  import imgaug.random
  from imgaug.testutils import assertWarns
label_desc: Use image node_id 2 for calling the Test_apply_lut_ obj's underlying member method code with example usage: obj.test_HW1_image() without return types