code: def test_mean_information_coefficient(
      self,
      factor_data,
      forward_returns,
      group_adjust,
      by_group,
      by_time,
      expected_ix,
      expected_ic_val,
  ):
      factor_data["1D"] = Series(
          index=factor_data.index, data=forward_returns
      )
  
      ic = mean_information_coefficient(
          factor_data,
          group_adjust=group_adjust,
          by_group=by_group,
          by_time=by_time,
      )
  
      expected_ic_df = DataFrame(
          index=expected_ix,
          columns=Index(["1D"], dtype="object"),
          data=expected_ic_val,
      )
  
      assert_frame_equal(ic, expected_ic_df)
  
imports: from __future__ import division
  from unittest import TestCase
  from parameterized import parameterized
  from numpy import nan
  from pandas import Series, DataFrame, date_range, MultiIndex, Int64Index, Index, DatetimeIndex, Timedelta
  from pandas.tseries.offsets import BDay, Day, CDay
  from pandas.util.testing import assert_frame_equal, assert_series_equal
  from ..performance import factor_information_coefficient, mean_information_coefficient, mean_return_by_quantile, quantile_turnover, factor_rank_autocorrelation, factor_returns, factor_alpha_beta, cumulative_returns, factor_weights, common_start_returns, average_cumulative_return_by_quantile
  from ..utils import get_forward_returns_columns, get_clean_factor_and_forward_returns
label_desc: Use image node_id 2 for calling the PerformanceTestCase obj's underlying member method code with example usage: obj.test_mean_information_coefficient(factor_data, forward_returns, group_adjust, by_group, by_time, expected_ix, expected_ic_val) without return types