code: def test_partial_month(self):
      start_session = self.trading_calendar.minute_to_session_label(
          pd.Timestamp("1993-02-01", tz="UTC")
      )
  
      # 1992 and 1996 were leap years
      total_days = 365 * 5 + 2
      end_session = start_session + datetime.timedelta(days=total_days)
      sim_params90s = SimulationParameters(
          start_session=start_session,
          end_session=end_session,
          trading_calendar=self.trading_calendar,
      )
  
      returns = factory.create_returns_from_range(sim_params90s)
      returns = returns[
          :-10
      ]  # truncate the returns series to end mid-month
      metrics = ClassicRiskMetrics.risk_report(
          algorithm_returns=returns,
          # use returns from the fixture to ensure that we have enough data.
          benchmark_returns=self.BENCHMARK_RETURNS,
          algorithm_leverages=pd.Series(0.0, index=returns.index),
      )
      total_months = 60
      self.check_metrics(metrics, total_months, start_session)
  
imports: import datetime
  import pandas
  import numpy
  from zipline.utils import factory
  from zipline.finance.trading import SimulationParameters
  import zipline.testing.fixtures
  from zipline.finance.metrics import _ClassicRiskMetrics
label_desc: Use image node_id 15 for calling the TestRisk obj's underlying member method code with example usage: obj.test_partial_month() without return types