code: def test_dilated_convolution(self):
      network = layers.join(
          layers.Input((6, 6, 1)),
          layers.Convolution(
              (3, 3, 1), dilation=2, weight=1, bias=None
          ),
      )
  
      input_value = asfloat(np.arange(36).reshape(1, 6, 6, 1))
      actual_output = self.eval(network.output(input_value))
  
      self.assertShapesEqual(actual_output.shape, (1, 2, 2, 1))
      self.assertShapesEqual(
          actual_output.shape[1:], network.output_shape[1:]
      )
  
      actual_output = actual_output[0, :, :, 0]
      expected_output = np.array(
          [
              [
                  126,
                  135,
              ],  # every row value adds +1 per filter value (+9)
              [
                  180,
                  189,
              ],  # every col value adds +6 per filter value (+54)
          ]
      )
      np.testing.assert_array_almost_equal(
          actual_output, expected_output
      )
  
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 17 for calling the ConvLayersTestCase obj's underlying member method code with example usage: obj.test_dilated_convolution() without return types