

def test_edge_cases(device_id):
    '\n    Test several edge cases related to min/max bin, and rounding.\n\n    Also test backend dump_hist_data functionality.\n    '
    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 = NervanaGPU(device_id=device_id)
    nc = NervanaCPU()
    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[be] = 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))
    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))
    del ng
    del nc

dataset/ETHPy150Open NervanaSystems/neon/neon/backends/tests/test_hist.py test_edge_cases/VarMisuse@183/305 `tag`->`be`