code: def check_transform_doesnt_change_noop_values(
      model, inputs, d_outputs
  ):
      # Check that if we're wrapping a noop() layer in the transform, we don't
      # change the output values.
      outputs, backprop = model.begin_update(inputs)
      d_inputs = backprop(d_outputs)
      if isinstance(outputs, list):
          for i in range(len(outputs)):
              numpy.testing.assert_equal(inputs[i], outputs[i])
              numpy.testing.assert_equal(d_outputs[i], d_inputs[i])
      elif isinstance(outputs, numpy.ndarray):
          numpy.testing.assert_equal(inputs, outputs)
          numpy.testing.assert_equal(d_outputs, d_inputs)
      elif isinstance(outputs, Ragged):
          numpy.testing.assert_equal(inputs.data, outputs.data)
          numpy.testing.assert_equal(d_outputs.data, d_inputs.data)
      elif isinstance(outputs, Padded):
          numpy.testing.assert_equal(inputs.data, outputs.data)
          numpy.testing.assert_equal(d_inputs.data, d_inputs.data)
  
imports: import numpy
  import numpy.testing
  import pytest
  from thinc.api import Linear, Model, NumpyOps, noop, with_array, with_array2d, with_getitem, with_list, with_padded, with_ragged
  from thinc.types import Padded, Ragged
  from ..util import get_data_checker
label_desc: Use image node_id 17 for calling a global function with example usage: check_transform_doesnt_change_noop_values(model, inputs, d_outputs) without return types