code: def test_find_best_matching_array():
      values = [
          [0, 10, 30, 40],
          [0, 11, 29, 42],
          [10, 21, 25, 39, 52],
          [0, 9, 15, 29, 32, 41],
          [0, 10, 29, 35, 36, 40],
          [0, 9, 41],
          [
              0,
              33,
          ],
      ]
  
      correct_results = [
          ([0, 11, 29, 42], 4),
          ([10, 21, 39, 52], 4),
          ([0, 9, 29, 41], 3),
          ([0, 10, 29, 40], 1),
          ([0, 9, 30, 41], 2),
          ([0, 10, 33, 40], 3),
      ]
  
      model = np.array(values[0])
      for i, row in enumerate(values[1:]):
          row = np.array(row)
          corrected_row, diffsum = find_best_matching_array(row, model)
          corr_res_row, corr_diffsum = correct_results[i]
  
          assert np.array_equal(corrected_row, corr_res_row)
          assert diffsum == corr_diffsum
  
file_path: pdftabextract/tests/test_clustering.py
imports: import pytest
  from hypothesis import given
  import hypothesis.strategies
  import numpy
  from scipy.stats import chisquare
  from pdftabextract.clustering import find_clusters_1d_break_dist, zip_clusters_and_values, calc_cluster_centers_1d, array_match_difference_1d, find_best_matching_array, adjust_bad_positions
label_desc: Use image node_id 5 for calling a global function with example usage: test_find_best_matching_array() without return types