code: def test_subnetwork_in_conv_network(self):
      network = layers.join(
          layers.Input((28, 28, 1)),
          layers.Convolution((3, 3, 8)) >> layers.Relu(),
          layers.Convolution((3, 3, 8)) >> layers.Relu(),
          layers.MaxPooling((2, 2)),
          layers.Reshape(),
          layers.Softmax(1),
      )
  
      self.assertEqual(8, len(network))
      self.assertTrue(network.is_sequential())
      self.assertShapesEqual(network.input_shape, (None, 28, 28, 1))
      self.assertShapesEqual(network.output_shape, (None, 1))
  
      expected_order = [
          layers.Input,
          layers.Convolution,
          layers.Relu,
          layers.Convolution,
          layers.Relu,
          layers.MaxPooling,
          layers.Reshape,
          layers.Softmax,
      ]
      for actual_layer, expected_layer in zip(network, expected_order):
          self.assertIsInstance(actual_layer, expected_layer)
  
file_path: neupy/tests/layers/graph/test_subnetworks.py
imports: import numpy
  from neupy import layers
  from neupy.utils import asfloat
  from base import BaseTestCase
label_desc: Use image node_id 2 for calling the SubnetworksTestCase obj's underlying member method code with example usage: obj.test_subnetwork_in_conv_network() without return types