code: def test_deconvolution_int_padding(self):
      network = layers.join(
          layers.Input((10, 10, 3)),
          layers.Convolution((3, 3, 7), padding=9),
          layers.Deconvolution((3, 3, 4), padding=9),
      )
  
      shapes = network.output_shapes_per_layer
      shapes = {l: shape_to_tuple(s) for l, s in shapes.items()}
      self.assertDictEqual(
          shapes,
          {
              network.layers[0]: (None, 10, 10, 3),
              network.layers[1]: (None, 26, 26, 7),
              network.layers[2]: (None, 10, 10, 4),
          },
      )
  
      input_value = asfloat(np.random.random((1, 10, 10, 3)))
      actual_output = self.eval(network.output(input_value))
  
      self.assertEqual(actual_output.shape, (1, 10, 10, 4))
  
imports: import random
  from itertools import product
  from collections import namedtuple
  import numpy
  import tensorflow
  from neupy import layers
  from neupy.utils import asfloat, shape_to_tuple
  from neupy.layers.convolutions import conv_output_shape, deconv_output_shape
  from neupy.exceptions import LayerConnectionError
  from base import BaseTestCase
label_desc: Use image node_id 3 for calling the DeconvolutionTestCase obj's underlying member method code with example usage: obj.test_deconvolution_int_padding() without return types