code: def _generate(
      num_vectors, norm_range=(0, 1), euclidean_max_norm=None
  ):
      if euclidean_max_norm:
          c = None
          normaliser = euclidean_max_norm
      else:
          c = np.random.random() * 10
          normaliser = c**-0.5
  
      n = np.random.choice([1, 2, 5, 10, 30, 100])
      extra_axes = np.random.choice([0, 1, 3])
  
      small, big = norm_range
      norms = (
          small + np.random.random(size=num_vectors) * (big - small)
      ) * normaliser
      raws = 2 * np.random.random(size=(num_vectors, n)) - 1
      scale = norms / np.linalg.norm(raws, axis=1)
      vs = raws * scale[:, None]
  
      return c, vs.astype(np.float32)[(None,) * extra_axes]
  
file_path: stellargraph/tests/utils/test_hyperbolic.py
imports: import pytest
  import numpy
  from stellargraph.utils.hyperbolic import *
label_desc: Use image node_id 2 for calling a global function with example usage: _generate(num_vectors, norm_range, euclidean_max_norm) and returns: c,  vs