class_docstr: Tests keywords, multiple arguments, and non-training arguments in relevant optimizers
docstr: Check non-trainable argument does not get updated
docstr_tok: ["Check","non-trainable","argument","does","not","get","updated"]
code: def test_nontrainable_data(self, opt):
      """Check non-trainable argument does not get updated"""
  
      def func(a, b, c, d):
          assert qml.math.allclose(b, 1.0)
          return a * b * c * d
  
      a = np.array(0.1, requires_grad=True)
      b = np.array(1.0, requires_grad=False)
      c = 1.0
      d = np.array(0.2, requires_grad=True)
  
      args1 = opt.step(func, a, b, c, d)
      args2 = opt.step(func, *args1)
  
      assert args2[1] is b
      assert args2[2] == 1.0
  
file_path: pennylane/tests/optimize/test_optimize.py
imports: import pytest
  import pennylane
  from pennylane import numpy
  from pennylane.optimize import GradientDescentOptimizer, MomentumOptimizer, NesterovMomentumOptimizer, AdagradOptimizer, RMSPropOptimizer, AdamOptimizer
label_desc: Use image node_id 3 for calling the TestOverOpts obj's underlying member method code with example usage: obj.test_nontrainable_data(opt) and returns: unknown