code: def test_common_start_returns(
      self, before, after, mean_by_date, demeaned, expected_vals
  ):
      dr = date_range(start="2015-1-17", end="2015-2-2")
      dr.name = "date"
      tickers = ["A", "B", "C", "D"]
      r1, r2, r3, r4 = (1.20, 1.40, 0.90, 0.80)
      data = [
          [r1**i, r2**i, r3**i, r4**i] for i in range(1, 18)
      ]
      returns = DataFrame(data=data, index=dr, columns=tickers)
      dr2 = date_range(start="2015-1-21", end="2015-1-29")
      factor = DataFrame(
          index=dr2,
          columns=tickers,
          data=[
              [3, 4, 2, 1],
              [3, 4, 2, 1],
              [3, 4, 2, 1],
              [3, 4, 2, 1],
              [3, 4, 2, 1],
              [3, 4, 2, 1],
              [3, 4, 2, 1],
              [3, 4, 2, 1],
              [3, 4, 2, 1],
          ],
      ).stack()
      factor.index = factor.index.set_names(["date", "asset"])
      factor.name = "factor"
  
      cmrt = common_start_returns(
          factor,
          returns,
          before,
          after,
          cumulative=True,
          mean_by_date=mean_by_date,
          demean_by=factor if demeaned else None,
      )
      cmrt = DataFrame(
          {"mean": cmrt.mean(axis=1), "std": cmrt.std(axis=1)}
      )
      expected = DataFrame(
          index=range(-before, after + 1),
          columns=["mean", "std"],
          data=expected_vals,
      )
      assert_frame_equal(cmrt, expected)
  
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 10 for calling the PerformanceTestCase obj's underlying member method code with example usage: obj.test_common_start_returns(before, after, mean_by_date, demeaned, expected_vals) without return types