code: def test_edge_cases(backend_pair):
      """
      Test several edge cases related to min/max bin, and rounding.
  
      Also test backend dump_hist_data functionality.
      """
      gpuflag = check_gpu.get_compute_capability(0) >= 3.0
      if gpuflag is False:
          raise RuntimeError(
              "Device does not have CUDA compute capability 3.0 or greater"
          )
      ng, nc = backend_pair
  
      # edge case test
      np_ref = dict()
      inputs = [
          ("edges", np.array([2**-48, 2**15], dtype=np.float32)),
          (
              "rounding",
              np.array(
                  [
                      2**5,
                      63.99998856,
                      2**6,
                      2**-3,
                      2**-4,
                      0.11262291,
                      92.22483826,
                  ],
                  dtype=np.float32,
              ),
          ),
          ("fp16 rounding", np.array([45.21875], dtype=np.float16)),
      ]
      for tag, inp in inputs:
          np_ref[tag] = ref_hist(inp)
          for be in [ng, nc]:
              be_inp = be.array(inp)
              be_hist = be_inp.hist(tag)
              assert tensors_allclose(np_ref[tag], be_hist), tag + str(
                  be
              )
  
      # dump_hist_data test
      for be in [ng, nc]:
          be_hist_data, be_hist_map = be.dump_hist_data()
          for tag, inp in inputs:
              be_data = be_hist_data[be_hist_map[tag]]
              assert tensors_allclose(np_ref[tag], be_data), tag + str(
                  be
              )
  
file_path: neon/tests/test_backend_hist.py
imports: from builtins import str
  import numpy
  import itertools
  import pytest
  from neon.backends.util import check_gpu
  from utils import tensors_allclose
label_desc: Use image node_id 5 for calling a global function with example usage: test_edge_cases(backend_pair) without return types