code: def test_ndbincount():
      def check(expected):
          npt.assert_equal(bc[0, 0], expected[0])
          npt.assert_equal(bc[0, 1], expected[1])
          npt.assert_equal(bc[1, 0], expected[2])
          npt.assert_equal(bc[2, 2], expected[3])
  
      x = np.array([[0, 0], [0, 0], [0, 1], [0, 1], [1, 0], [2, 2]]).T
      expected = [2, 2, 1, 1]
      # count occurrences in x
      bc = ndbincount(x)
      npt.assert_equal(bc.shape, (3, 3))
      check(expected)
      # pass in shape
      bc = ndbincount(x, shape=(4, 5))
      npt.assert_equal(bc.shape, (4, 5))
      check(expected)
      # pass in weights
      weights = np.arange(6.0)
      weights[-1] = 1.23
      expected = [1.0, 5.0, 4.0, 1.23]
      bc = ndbincount(x, weights=weights)
      check(expected)
      # raises an error if shape is too small
      npt.assert_raises(ValueError, ndbincount, x, None, (2, 2))
  
imports: import warnings
  import numpy
  import pytest
  from dipy.tracking import metrics
  from dipy.tracking.streamline import transform_streamlines
  from dipy.tracking.utils import connectivity_matrix, density_map, length, ndbincount, reduce_labels, seeds_from_mask, random_seeds_from_mask, target, target_line_based, unique_rows, near_roi, reduce_rois, path_length, _min_at, max_angle_from_curvature, min_radius_curvature_from_angle
  from dipy.tracking._utils import _to_voxel_coordinates
  from dipy.tracking.vox2track import streamline_mapping
  import numpy.testing
  from dipy.testing import assert_true
  from dipy.testing.decorators import set_random_number_generator
label_desc: Use image node_id 5 for calling a global function with example usage: test_ndbincount() without return types