code: def test_not_enough_info_get_ood_features_scores():
      # Testing calling function with not enough information to calculate outlier scores
      try:
          outlier._get_ood_features_scores(
              features=None,
              knn=None,  # this should throw TypeError because knn=None and features=None
          )
      except Exception as e:
          assert "Both knn and features arguments" in str(e)
          with pytest.raises(ValueError) as e:
              outlier._get_ood_features_scores(
                  features=None,
                  knn=None,  # this should throw TypeError because knn=None and features=None
              )
  
imports: import numpy
  import pandas
  import pytest
  from cleanlab.benchmarking.noise_generation import generate_noise_matrix_from_trace
  from cleanlab.benchmarking.noise_generation import generate_noisy_labels
  from cleanlab import count, outlier
  from cleanlab.count import get_confident_thresholds
  from cleanlab.outlier import OutOfDistribution
  from cleanlab.internal.label_quality_utils import get_normalized_entropy
  from sklearn.neighbors import NearestNeighbors
  from sklearn.linear_model import LogisticRegression
label_desc: Use image node_id 8 for calling a global function with example usage: test_not_enough_info_get_ood_features_scores() without return types