code: def test_numeric_feature(self, params, titanic_data):
      numeric_feature_info = self.get_feature_info(
          titanic_data, **params
      )
      assert numeric_feature_info.type == "numeric"
  
      df, count_df, summary_df = numeric_feature_info.prepare(
          titanic_data
      )
      self.check_prepare_results(df, count_df, summary_df)
      if params["cust_grid_points"] is not None:
          assert np.array_equal(
              numeric_feature_info.grids, params["cust_grid_points"]
          )
      else:
          assert (
              len(numeric_feature_info.grids)
              == params["num_grid_points"]
          )
          if params["grid_type"] == "percentile":
              assert numeric_feature_info.percentiles is not None
          else:
              assert numeric_feature_info.percentiles is None
      assert (
          numeric_feature_info.num_bins
          == len(numeric_feature_info.grids) - 1
      )
  
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 12 for calling the TestFeatureInfo obj's underlying member method code with example usage: obj.test_numeric_feature(params, titanic_data) without return types