code: def test_neibs_wrap_centered_step_manual(self):
      expected1 = [
          [24, 20, 21, 4, 0, 1, 9, 5, 6],
          [21, 22, 23, 1, 2, 3, 6, 7, 8],
          [23, 24, 20, 3, 4, 0, 8, 9, 5],
          [9, 5, 6, 14, 10, 11, 19, 15, 16],
          [6, 7, 8, 11, 12, 13, 16, 17, 18],
          [8, 9, 5, 13, 14, 10, 18, 19, 15],
          [19, 15, 16, 24, 20, 21, 4, 0, 1],
          [16, 17, 18, 21, 22, 23, 1, 2, 3],
          [18, 19, 15, 23, 24, 20, 3, 4, 0],
      ]
      expected2 = [
          [24, 20, 21, 4, 0, 1, 9, 5, 6],
          [22, 23, 24, 2, 3, 4, 7, 8, 9],
          [14, 10, 11, 19, 15, 16, 24, 20, 21],
          [12, 13, 14, 17, 18, 19, 22, 23, 24],
      ]
      expected3 = [
          [19, 15, 16, 24, 20, 21, 4, 0, 1, 9, 5, 6, 14, 10, 11],
          [17, 18, 19, 22, 23, 24, 2, 3, 4, 7, 8, 9, 12, 13, 14],
          [9, 5, 6, 14, 10, 11, 19, 15, 16, 24, 20, 21, 4, 0, 1],
          [7, 8, 9, 12, 13, 14, 17, 18, 19, 22, 23, 24, 2, 3, 4],
      ]
      expected4 = [
          [23, 24, 20, 21, 22, 3, 4, 0, 1, 2, 8, 9, 5, 6, 7],
          [21, 22, 23, 24, 20, 1, 2, 3, 4, 0, 6, 7, 8, 9, 5],
          [13, 14, 10, 11, 12, 18, 19, 15, 16, 17, 23, 24, 20, 21, 22],
          [11, 12, 13, 14, 10, 16, 17, 18, 19, 15, 21, 22, 23, 24, 20],
      ]
      expected5 = [
          [24, 20, 21, 4, 0, 1, 9, 5, 6],
          [22, 23, 24, 2, 3, 4, 7, 8, 9],
          [9, 5, 6, 14, 10, 11, 19, 15, 16],
          [7, 8, 9, 12, 13, 14, 17, 18, 19],
          [19, 15, 16, 24, 20, 21, 4, 0, 1],
          [17, 18, 19, 22, 23, 24, 2, 3, 4],
      ]
      expected6 = [
          [24, 20, 21, 4, 0, 1, 9, 5, 6],
          [21, 22, 23, 1, 2, 3, 6, 7, 8],
          [23, 24, 20, 3, 4, 0, 8, 9, 5],
          [14, 10, 11, 19, 15, 16, 24, 20, 21],
          [11, 12, 13, 16, 17, 18, 21, 22, 23],
          [13, 14, 10, 18, 19, 15, 23, 24, 20],
      ]
  
      # TODO test discontinous image
  
      for shp_idx, (
          shape,
          neib_shape,
          neib_step,
          expected,
      ) in enumerate(
          [
              [(7, 8, 5, 5), (3, 3), (2, 2), expected1],
              [(7, 8, 5, 5), (3, 3), (3, 3), expected2],
              [(7, 8, 5, 5), (5, 3), (3, 3), expected3],
              [(7, 8, 5, 5), (3, 5), (3, 3), expected4],
              [(80, 90, 5, 5), (3, 3), (2, 3), expected5],
              [(1025, 9, 5, 5), (3, 3), (3, 2), expected6],
              [(1, 1, 5, 1035), (3, 3), (3, 3), None],
              [(1, 1, 1045, 5), (3, 3), (3, 3), None],
          ]
      ):
          for dtype in self.dtypes:
              images = shared(
                  np.asarray(
                      np.arange(np.prod(shape)).reshape(shape),
                      dtype=dtype,
                  )
              )
              neib_shape = T.as_tensor_variable(neib_shape)
              neib_step = T.as_tensor_variable(neib_step)
              expected = np.asarray(expected)
  
              f = function(
                  [],
                  images2neibs(
                      images,
                      neib_shape,
                      neib_step,
                      mode="wrap_centered",
                  ),
                  mode=self.mode,
              )
              neibs = f()
  
              if expected.size > 1:
                  for i in range(shape[0] * shape[1]):
                      assert np.allclose(
                          neibs[
                              i
                              * expected.shape[0] : (i + 1)
                              * expected.shape[0],
                              :,
                          ],
                          expected + 25 * i,
                      ), "wrap_centered"
  
              assert self.op in [
                  type(node.op) for node in f.maker.fgraph.toposort()
              ]
  
imports: from __future__ import absolute_import, print_function, division
  import numpy
  import unittest
  import theano
  from theano import shared, function
  import theano.tensor
  from theano.tensor.nnet.neighbours import images2neibs, neibs2images, Images2Neibs
  from theano.tests import unittest_tools
  from theano import change_flags
label_desc: Use image node_id 5 for calling the T_Images2Neibs obj's underlying member method code with example usage: obj.test_neibs_wrap_centered_step_manual() without return types