code: def test_div_gradient_inplace_or_broadcast(
      self,
      n: int,
      m: int,
      inplace: bool,
      allow_broadcast_fastpath: bool,
      gc,
      dc,
      seed: int,
  ):
      broadcast = not inplace
      np.random.seed(seed)
  
      def div_gradient(dC, _A, B, C):
          dA = dC / B
          dB = -dC * C / B
          if broadcast:
              dB = np.sum(dB, axis=0)
          return [dA, dB]
  
      A = np.random.rand(n, m).astype(np.float32)
      if broadcast:
          B = np.random.rand(m).astype(np.float32) + 1.0
      else:
          B = np.random.rand(n, m).astype(np.float32) + 1.0
      C = A / B
      dC = np.random.rand(n, m).astype(np.float32)
      op = core.CreateOperator(
          "DivGradient",
          ["dC", "A", "B", "C"],
          ["dC" if inplace else "dA", "dB"],
          allow_broadcast_fastpath=allow_broadcast_fastpath,
      )
  
      self.assertReferenceChecks(
          device_option=gc,
          op=op,
          inputs=[dC, A, B, C],
          reference=div_gradient,
      )
  
imports: from caffe2.python import core, workspace
  from hypothesis import given, assume, settings
  import caffe2.python.hypothesis_test_util
  import hypothesis.strategies
  import numpy
  import unittest
label_desc: Use image node_id 15 for calling the TestElementwiseOps obj's underlying member method code with example usage: obj.test_div_gradient_inplace_or_broadcast(n, m, inplace, allow_broadcast_fastpath, gc, dc, seed) and returns: list