code: def test_non_contiguous(self):
      self.validate(
          (2, 2, 3, 3, 3), (2, 2, 2, 2, 2), "valid", non_contiguous=True
      )
      self.validate(
          (3, 2, 8, 8, 8), (2, 2, 5, 5, 5), "valid", non_contiguous=True
      )
      self.validate(
          (3, 2, 7, 5, 5), (3, 2, 2, 3, 3), "valid", non_contiguous=True
      )
      self.validate(
          (3, 2, 7, 5, 5), (3, 2, 3, 2, 2), "valid", non_contiguous=True
      )
      self.validate(
          (3, 1, 8, 8, 8), (2, 1, 5, 5, 5), "full", non_contiguous=True
      )
      self.validate(
          (3, 1, 8, 8, 8), (2, 1, 5, 5, 5), "half", non_contiguous=True
      )
      self.validate(
          (3, 1, 8, 8, 8),
          (2, 1, 5, 5, 5),
          (1, 1, 1),
          non_contiguous=True,
      )
      self.validate(
          (3, 1, 7, 5, 5),
          (2, 1, 2, 3, 3),
          (1, 1, 2),
          non_contiguous=True,
      )
      self.validate(
          (3, 1, 7, 5, 5),
          (2, 1, 2, 3, 3),
          (1, 2, 1),
          non_contiguous=True,
      )
      self.validate(
          (3, 1, 7, 5, 5),
          (2, 1, 2, 3, 3),
          (2, 1, 1),
          non_contiguous=True,
      )
  
imports: from __future__ import absolute_import, print_function, division
  from nose.plugins.skip import SkipTest
  from nose.plugins.attrib import attr
  from nose.tools import assert_equals
  from parameterized import parameterized
  import numpy
  from six import integer_types
  import theano
  import theano.tensor
  from theano.tests import unittest_tools
  from theano.tensor.nnet import corr3d, conv
  from theano.tensor.nnet.tests.test_abstract_conv import Grouped_conv3d_noOptim
label_desc: Use image node_id 16 for calling the TestCorr3D obj's underlying member method code with example usage: obj.test_non_contiguous() without return types