code: def test_binary_search_underflow():
      # Test if the binary search finds Gaussians with desired perplexity.
      # A more challenging case than the one above, producing numeric
      # underflow in float precision (see issue #19471 and PR #19472).
      random_state = check_random_state(42)
      data = random_state.randn(1, 90).astype(np.float32) + 100
      desired_perplexity = 30.0
      P = _binary_search_perplexity(data, desired_perplexity, verbose=0)
      perplexity = 2 ** -np.nansum(P[0, 1:] * np.log2(P[0, 1:]))
      assert_almost_equal(perplexity, desired_perplexity, decimal=3)
  
imports: import sys
  from io import StringIO
  import numpy
  import pytest
  import scipy.sparse
  from numpy.testing import assert_allclose
  from scipy.optimize import check_grad
  from scipy.spatial.distance import pdist, squareform
  from sklearn import config_context
  from sklearn.datasets import make_blobs
  from sklearn.exceptions import EfficiencyWarning
  from sklearn.manifold import TSNE, _barnes_hut_tsne
  from sklearn.manifold._t_sne import _gradient_descent, _joint_probabilities, _joint_probabilities_nn, _kl_divergence, _kl_divergence_bh, trustworthiness
  from sklearn.manifold._utils import _binary_search_perplexity
  from sklearn.metrics.pairwise import cosine_distances, manhattan_distances, pairwise_distances
  from sklearn.neighbors import NearestNeighbors, kneighbors_graph
  from sklearn.utils import check_random_state
  from sklearn.utils._testing import assert_almost_equal, assert_array_almost_equal, assert_array_equal, ignore_warnings, skip_if_32bit
  from sklearn.utils.fixes import CSR_CONTAINERS, LIL_CONTAINERS
label_desc: Use image node_id 3 for calling a global function with example usage: test_binary_search_underflow() without return types