code: def test_precision_recall(backend_default):
      be = NervanaObject.be
      be.bsz = 4
      preds = np.array([[0, 1, 0, 1], [1, 0, 0, 0], [0, 0, 1, 0]])
      targets = np.array([[0, 1, 0, 1], [1, 0, 1, 0], [0, 0, 0, 0]])
      expected_result = np.array([1 + 1 + 0, 1 + 0.5 + 0]) / 3.0
      compare_metric(
          PrecisionRecall(3), preds, targets, expected_result, tol=1e-6
      )
  
imports: import itertools
  import numpy
  from neon import NervanaObject
  from neon.backends import gen_backend
  from neon.transforms import CrossEntropyBinary, CrossEntropyMulti, SumSquared, MeanSquared, Misclassification, PrecisionRecall, SmoothL1Loss, SquareHingeLoss
label_desc: Use image node_id 17 for calling a global function with example usage: test_precision_recall(backend_default) without return types