code: def test_with_debug():
      on_init = MagicMock()
      on_forward = MagicMock()
      on_backprop = MagicMock()
      model = with_debug(
          Linear(),
          on_init=on_init,
          on_forward=on_forward,
          on_backprop=on_backprop,
      )
      on_init.assert_not_called()
      on_forward.assert_not_called()
      on_backprop.assert_not_called()
      X = model.ops.alloc2f(1, 1)
      Y = model.ops.alloc2f(1, 1)
      model.initialize(X=X, Y=Y)
      on_init.assert_called_once_with(model, X, Y)
      on_forward.assert_not_called()
      on_backprop.assert_not_called()
      Yh, backprop = model(X, is_train=True)
      on_forward.assert_called_once_with(model, X, True)
      on_backprop.assert_not_called()
      backprop(Y)
      on_backprop.assert_called_once_with(Y)
  
label_desc: Use image node_id 1 for calling a global function with example usage: test_with_debug() without return types