def METHOD_NAME(self):
    # Two regular conv layers
    sess = tf.compat.v1.Session(graph=tf.Graph())
    with sess.graph.as_default():
        model = tf.keras.Sequential([
            tf.keras.layers.Reshape(target_shape=(28, 28, 1), input_shape=(28 * 28,)),
            tf.keras.layers.Conv2D(32, 5, name='conv1', padding='same'),
            tf.keras.layers.Conv2D(64, 32, name='conv2', padding='same'),
            tf.keras.layers.SeparableConvolution2D(64, 64, name='conv3', padding='same'),
            tf.keras.layers.Flatten(),
            tf.keras.layers.Dense(64 * 28 * 28, name='linear')
        ])
    conv1_op = sess.graph.get_operation_by_name("conv1/Conv2D")
    conv2_op = sess.graph.get_operation_by_name("conv2/Conv2D")
    conv3_op = sess.graph.get_operation_by_name("conv3/separable_conv2d")
    matmul1_op = sess.graph.get_operation_by_name("linear/MatMul")
    # output shape in NCHW format
    conv1_op_output_shape = conv1_op.outputs[0].shape
    conv2_op_output_shape = conv2_op.outputs[0].shape
    conv3_op_output_shape = conv3_op.outputs[0].shape
    matmul1_op_output_shape = matmul1_op.outputs[0].shape
    layer1 = Layer(sess, conv1_op, output_shape=conv1_op_output_shape)
    layer2 = Layer(sess, conv2_op, output_shape=conv2_op_output_shape)
    layer3 = Layer(sess, conv3_op, output_shape=conv3_op_output_shape)
    layer4 = Layer(sess, matmul1_op, output_shape=matmul1_op_output_shape)
    layer_db = MagicMock()
    layer_db.__iter__.return_value = [layer1, layer2, layer3, layer4]
    layer_selector = ConvNoDepthwiseLayerSelector()
    layer_selector.select(layer_db, [])
    layer_db.mark_picked_layers.assert_called_once_with([layer1, layer2])
    # Two regular conv layers - one in ignore list
    layer_db.mark_picked_layers.reset_mock()
    layer_selector.select(layer_db, [layer2.module])
    layer_db.mark_picked_layers.assert_called_once_with([layer1])
    sess.close()