code: def test_pool_c_interface(self):
      gpu_mode = mode_with_gpu.excluding("cudnn")
      gpu_mode.check_py_code = False
  
      shp = (2, 2, 2, 2)
      inp = theano.shared(rand(*shp), "a")
      inp = tensor.as_tensor_variable(inp)
      with self.assertRaises(ValueError):
          # test when ignore_border and pad >= 0
          ds_op = GpuPool(ignore_border=False, ndim=2)
          pad = tensor.as_tensor_variable([1, 1])
          f = theano.function(
              [], ds_op(inp, [2, 2], pad=pad), mode=gpu_mode
          )
          f()
  
file_path: Theano/theano/gpuarray/tests/test_pool.py
imports: from __future__ import absolute_import, print_function, division
  import unittest
  import copy
  import itertools
  import numpy
  import theano
  from theano import gradient
  from theano import tensor
  from theano.tensor.signal.pool import Pool, MaxPoolGrad, AveragePoolGrad, DownsampleFactorMaxGradGrad
  from theano.tests import unittest_tools
  from .config import mode_with_gpu, mode_without_gpu
  from .test_basic_ops import rand
  from ..pool import GpuPool, GpuMaxPoolGrad, GpuAveragePoolGrad, GpuDownsampleFactorMaxGradGrad
label_desc: Use image node_id 2 for calling the TestPool obj's underlying member method code with example usage: obj.test_pool_c_interface() without return types