code: def test_numeric_feature_buckets(self, params, expected, sample_data):
      feature_info = FeatureInfo(
          feature="feature",
          feature_name="Feature",
          df=sample_data,
          num_grid_points=10,
          **params,
      )
      feature_info._get_grids(sample_data)
      mapped_df = feature_info._map_values_to_buckets(sample_data)
  
      assert np.array_equal(mapped_df["x"].values, expected["x"])
      assert feature_info.display_columns == expected["display_columns"]
      assert (
          feature_info.percentile_columns
          == expected["percentile_columns"]
      )
  
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 19 for calling the TestFeatureInfo obj's underlying member method code with example usage: obj.test_numeric_feature_buckets(params, expected, sample_data) without return types