code: def test_convex_hull(base_points, expected_remaining_indices):
      convex_hull = _filter_points_to_get_convex_hull(base_points)
      assert (
          base_points.x[expected_remaining_indices]
          == [point.x for point in convex_hull]
      ).all()
      assert (
          base_points.y[expected_remaining_indices]
          == [point.y for point in convex_hull]
      ).all()
      assert (
          base_points.operation[expected_remaining_indices]
          == [point.operation for point in convex_hull]
      ).all()
  
file_path: fairlearn/test/unit/postprocessing/test_curve_utilities.py
imports: import numpy
  import pandas
  import pytest
  from fairlearn.postprocessing._constants import LABEL_KEY, SCORE_KEY, SENSITIVE_FEATURE_KEY
  from fairlearn.postprocessing._threshold_operation import ThresholdOperation
  from fairlearn.postprocessing._tradeoff_curve_utilities import _calculate_tradeoff_points, _filter_points_to_get_convex_hull, _interpolate_curve, _tradeoff_curve
  from .conftest import _get_grouped_data_and_base_points, labels_ex, scores_ex, sensitive_feature_names_ex1, sensitive_features_ex1
label_desc: Use image node_id 3 for calling a global function with example usage: test_convex_hull(base_points, expected_remaining_indices) without return types