code: def test_new_schedule_interval_next_info_starts_at_new_time(
      earliest: pendulum.DateTime | None,
      catchup: bool,
  ) -> None:
      """First run after DAG has new schedule interval."""
      next_info = CRON_TIMETABLE.next_dagrun_info(
          last_automated_data_interval=OLD_INTERVAL,
          restriction=TimeRestriction(
              earliest=earliest, latest=None, catchup=catchup
          ),
      )
      expected_start = YESTERDAY + datetime.timedelta(
          hours=16, minutes=30
      )
      expected_end = CURRENT_TIME + datetime.timedelta(
          hours=16, minutes=30
      )
      assert next_info == DagRunInfo.interval(
          start=expected_start, end=expected_end
      )
  
imports: from __future__ import annotations
  import datetime
  import dateutil.relativedelta
  import pendulum
  import pytest
  import time_machine
  from airflow.exceptions import AirflowTimetableInvalid
  from airflow.timetables.base import DagRunInfo, DataInterval, TimeRestriction, Timetable
  from airflow.timetables.interval import CronDataIntervalTimetable, DeltaDataIntervalTimetable
  from airflow.utils.timezone import utc
label_desc: Use image node_id 2 for calling a global function with example usage: test_new_schedule_interval_next_info_starts_at_new_time(earliest, catchup) without return types