code: def test_torch_qr(
      *,
      dtype_and_input,
      frontend,
      test_flags,
      fn_tree,
      backend_fw,
      on_device,
  ):
      input_dtype, x = dtype_and_input
      ivy.set_backend(backend_fw)
      ret, frontend_ret = helpers.test_frontend_function(
          input_dtypes=input_dtype,
          backend_to_test=backend_fw,
          frontend=frontend,
          test_flags=test_flags,
          fn_tree=fn_tree,
          on_device=on_device,
          A=x[0],
          test_values=False,
      )
      ret = [ivy.to_numpy(x) for x in ret]
      frontend_ret = [np.asarray(x) for x in frontend_ret]
  
      q, r = ret
      frontend_q, frontend_r = frontend_ret
  
      assert_all_close(
          ret_np=q @ r,
          ret_from_gt_np=frontend_q @ frontend_r,
          rtol=1e-2,
          atol=1e-2,
          ground_truth_backend=frontend,
          backend=backend_fw,
      )
      ivy.previous_backend()
  
imports: import math
  import sys
  import numpy
  from hypothesis import strategies, assume
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import assert_all_close
  from ivy_tests.test_ivy.helpers import handle_frontend_test
  from ivy_tests.test_ivy.test_frontends.test_torch.test_miscellaneous_ops import dtype_value1_value2_axis
  from ivy_tests.test_ivy.helpers.hypothesis_helpers.general_helpers import matrix_is_stable
  from ivy_tests.test_ivy.test_functional.test_core.test_linalg import _matrix_rank_helper
label_desc: Use image node_id 28 for calling a global function with example usage: test_torch_qr() without return types