code: def test_get_numeric_grids_percentile(
      self, feature_info_sample, sample_data
  ):
      grids, percentiles = feature_info_sample._get_numeric_grids(
          sample_data["feature"].values
      )
  
      assert len(grids) == feature_info_sample.num_grid_points
      assert len(percentiles) == feature_info_sample.num_grid_points
      assert np.all(
          np.diff(grids) > 0
      ), "Grids should be sorted in ascending order"
  
      expected_percentiles = [0, 25, 50, 75, 100]
      for i, p in enumerate(percentiles):
          assert len(p) == 1 or np.all(
              np.diff(p) > 0
          ), "Percentiles should be sorted in ascending order"
          assert round(p[0], 2) == expected_percentiles[i]
  
imports: import pandas
  import numpy
  import pytest
  from pdpbox.utils import FeatureInfo, _to_rgba, _check_col, _check_dataset, _make_list, _check_model, _check_classes, _check_memory_limit, _check_frac_to_plot, _calc_n_jobs, _get_string, _expand_params_for_interact, _calc_preds, _check_cluster_params, _check_plot_engine, _check_pdp_interact_plot_type
label_desc: Use image node_id 13 for calling the TestFeatureInfo obj's underlying member method code with example usage: obj.test_get_numeric_grids_percentile(feature_info_sample, sample_data) without return types