code: def test_1m_1sf_1cf(transform_y_t, transform_y_p):
      # If there are failures here, other, more specific tests should also fail
      target = metrics.MetricFrame(
          metrics=skm.recall_score,
          y_true=transform_y_t(y_t),
          y_pred=transform_y_p(y_p),
          sensitive_features=g_2,
          control_features=g_3,
      )
      # Check on ci_quantiles
      assert target.ci_quantiles is None
  
      # Check on the indices properties
      assert isinstance(target.control_levels, list)
      assert target.control_levels == ["control_feature_0"]
      assert isinstance(target.sensitive_levels, list)
      assert target.sensitive_levels == ["sensitive_feature_0"]
  
      # Check we have correct return types
      assert isinstance(target.overall, pd.Series)
      assert isinstance(target.by_group, pd.Series)
  
      mask_f = g_2 == "f"
      mask_g = g_2 == "g"
      mask_k = g_3 == "kk"
      mask_m = g_3 == "m"
  
      # Check we have expected number of elements
      assert len(target.overall) == 2
      assert len(target.by_group) == 4
  
      recall_k = skm.recall_score(y_t[mask_k], y_p[mask_k])
      recall_m = skm.recall_score(y_t[mask_m], y_p[mask_m])
      assert target.overall["kk"] == recall_k
      assert target.overall["m"] == recall_m
  
      mask_k_f = np.logical_and(mask_k, mask_f)
      mask_k_g = np.logical_and(mask_k, mask_g)
      mask_m_f = np.logical_and(mask_m, mask_f)
      mask_m_g = np.logical_and(mask_m, mask_g)
      recall_k_f = skm.recall_score(y_t[mask_k_f], y_p[mask_k_f])
      recall_m_f = skm.recall_score(y_t[mask_m_f], y_p[mask_m_f])
      recall_k_g = skm.recall_score(y_t[mask_k_g], y_p[mask_k_g])
      recall_m_g = skm.recall_score(y_t[mask_m_g], y_p[mask_m_g])
      assert target.by_group[("kk", "f")] == recall_k_f
      assert target.by_group[("kk", "g")] == recall_k_g
      assert target.by_group[("m", "f")] == recall_m_f
      assert target.by_group[("m", "g")] == recall_m_g
  
      recall_k_arr = [recall_k_f, recall_k_g]
      recall_m_arr = [recall_m_f, recall_m_g]
  
      target_mins = target.group_min()
      assert isinstance(target_mins, pd.Series)
      assert len(target_mins) == 2
      assert target_mins["kk"] == min(recall_k_arr)
      assert target_mins["m"] == min(recall_m_arr)
  
      target_maxs = target.group_max()
      assert isinstance(target_mins, pd.Series)
      assert len(target_maxs) == 2
      assert target_maxs["kk"] == max(recall_k_arr)
      assert target_maxs["m"] == max(recall_m_arr)
  
file_path: fairlearn/test/unit/metrics/test_metricframe_smoke.py
imports: from test.unit.input_convertors import conversions_for_1d
  import numpy
  import pandas
  import pytest
  import sklearn.metrics
  import fairlearn.metrics
  from .data_for_test import g_1, g_2, g_3, g_4, s_w, y_p, y_t
label_desc: Use image node_id 3 for calling a global function with example usage: test_1m_1sf_1cf(transform_y_t, transform_y_p) without return types