code: def test_adam_update(
      *,
      dtype_n_ws_n_dcdw_n_mwtm1_n_vwtm1_n_lr,
      step,
      beta1_n_beta2_n_epsilon,
      stopgrad,
      test_flags,
      backend_fw,
      fn_name,
      on_device,
  ):
      (
          input_dtypes,
          [w, dcdw, mw_tm1, vw_tm1],
          lr,
      ) = dtype_n_ws_n_dcdw_n_mwtm1_n_vwtm1_n_lr
      beta1, beta2, epsilon = beta1_n_beta2_n_epsilon
      stop_gradients = stopgrad
      helpers.test_function(
          input_dtypes=input_dtypes,
          test_flags=test_flags,
          backend_to_test=backend_fw,
          fn_name=fn_name,
          on_device=on_device,
          rtol_=1e-2,
          atol_=1e-2,
          w=w,
          dcdw=dcdw,
          lr=lr,
          mw_tm1=mw_tm1,
          vw_tm1=vw_tm1,
          step=step,
          beta1=beta1,
          beta2=beta2,
          epsilon=epsilon,
          stop_gradients=stop_gradients,
      )
  
file_path: ivy/ivy_tests/test_ivy/test_functional/test_core/test_gradients.py
imports: from hypothesis import strategies
  import pytest
  import numpy
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test, BackendHandler
label_desc: Use image node_id 3 for calling a global function with example usage: test_adam_update() without return types