2 from pybind11_tests 
import chrono 
as m
 
   12     date0 = datetime.datetime.today()
 
   13     date1 = m.test_chrono1()
 
   14     date2 = datetime.datetime.today()
 
   20     diff_python = 
abs(date2 - date0)
 
   21     diff = 
abs(date1 - date2)
 
   28     assert diff.seconds <= diff_python.seconds
 
   32     date1 = datetime.datetime.today()
 
   35     date2 = m.test_chrono2(date1)
 
   41     diff = 
abs(date1 - date2)
 
   43     assert diff.seconds == 0
 
   44     assert diff.microseconds == 0
 
   48     date1 = datetime.date.today()
 
   51     datetime2 = m.test_chrono2(date1)
 
   52     date2 = datetime2.date()
 
   53     time2 = datetime2.time()
 
   56     assert isinstance(datetime2, datetime.datetime)
 
   61     diff = 
abs(date1 - date2)
 
   63     assert diff.seconds == 0
 
   64     assert diff.microseconds == 0
 
   67     assert date1.year == date2.year
 
   68     assert date1.month == date2.month
 
   69     assert date1.day == date2.day
 
   72     assert time2.hour == 0
 
   73     assert time2.minute == 0
 
   74     assert time2.second == 0
 
   75     assert time2.microsecond == 0
 
   78 SKIP_TZ_ENV_ON_WIN = pytest.mark.skipif(
 
   79     "env.WIN", reason=
"TZ environment variable only supported on POSIX" 
   83 @pytest.mark.parametrize(
 
   86         datetime.datetime.today().time(),
 
   87         datetime.time(0, 0, 0),
 
   88         datetime.time(0, 0, 0, 1),
 
   89         datetime.time(0, 28, 45, 109827),
 
   90         datetime.time(0, 59, 59, 999999),
 
   91         datetime.time(1, 0, 0),
 
   92         datetime.time(5, 59, 59, 0),
 
   93         datetime.time(5, 59, 59, 1),
 
   96 @pytest.mark.parametrize(
 
  100         pytest.param(
"Europe/Brussels", marks=SKIP_TZ_ENV_ON_WIN),
 
  101         pytest.param(
"Asia/Pyongyang", marks=SKIP_TZ_ENV_ON_WIN),
 
  102         pytest.param(
"America/New_York", marks=SKIP_TZ_ENV_ON_WIN),
 
  107         monkeypatch.setenv(
"TZ", 
"/usr/share/zoneinfo/{}".format(tz))
 
  110     datetime2 = m.test_chrono2(time1)
 
  111     date2 = datetime2.date()
 
  112     time2 = datetime2.time()
 
  115     assert isinstance(datetime2, datetime.datetime)
 
  120     assert time1.hour == time2.hour
 
  121     assert time1.minute == time2.minute
 
  122     assert time1.second == time2.second
 
  123     assert time1.microsecond == time2.microsecond
 
  126     assert date2.year == 1970
 
  127     assert date2.month == 1
 
  128     assert date2.day == 1
 
  134     date1 = datetime.datetime.today()
 
  135     date2 = datetime.datetime.today()
 
  141     cpp_diff = m.test_chrono3(diff)
 
  143     assert cpp_diff.days == diff.days
 
  144     assert cpp_diff.seconds == diff.seconds
 
  145     assert cpp_diff.microseconds == diff.microseconds
 
  150     date1 = datetime.datetime.today()
 
  151     date2 = datetime.datetime.today()
 
  154     cpp_diff = m.test_chrono4(date2, date1)
 
  156     assert cpp_diff.days == diff.days
 
  157     assert cpp_diff.seconds == diff.seconds
 
  158     assert cpp_diff.microseconds == diff.microseconds
 
  163     date1 = datetime.date.today()
 
  164     date2 = datetime.date.today()
 
  167     cpp_diff = m.test_chrono4(date2, date1)
 
  169     assert cpp_diff.days == diff.days
 
  170     assert cpp_diff.seconds == diff.seconds
 
  171     assert cpp_diff.microseconds == diff.microseconds
 
  175     time1 = m.test_chrono5()
 
  180     time1 = datetime.timedelta(days=10, seconds=10, microseconds=100)
 
  181     time2 = m.test_chrono6(time1)
 
  186     assert time1.days == time2.days
 
  187     assert time1.seconds == time2.seconds
 
  188     assert time1.microseconds == time2.microseconds
 
  193     time = m.test_chrono7(35.525123)
 
  197     assert time.seconds == 35
 
  198     assert 525122 <= time.microseconds <= 525123
 
  200     diff = m.test_chrono_float_diff(43.789012, 1.123456)
 
  201     assert diff.seconds == 42
 
  202     assert 665556 <= diff.microseconds <= 665557
 
  206     time = datetime.datetime.now()
 
  207     time1 = m.test_nano_timepoint(time, datetime.timedelta(seconds=60))
 
  208     assert time1 == time + datetime.timedelta(seconds=60)
 
  212     resolutions = m.different_resolutions()
 
  213     time = datetime.datetime.now()
 
  214     resolutions.timestamp_h = time
 
  215     resolutions.timestamp_m = time
 
  216     resolutions.timestamp_s = time
 
  217     resolutions.timestamp_ms = time
 
  218     resolutions.timestamp_us = time