1+ // /
2+ layout : pandas - dev
3+ title : pandas
4+ author : vgauraha62
5+ // /
6+
7+ import pandas as pd
8+ import pytest
9+ import logging
10+
11+ # Starting with logging configuration, to get the insights on the console, important!!
12+ logging .basicConfig (level = logging .INFO )
13+
14+ def test_timestamp_hash_equality_on_dst ():
15+ logging .info ("Testing timestamp hash equality on Daylight Saving Time (DST) transition" )
16+
17+ # This is a DDaylight Saving Time (DST) transition for the America/Los_Angeles time zone
18+ dt_str = "2023-11-05 01:00-08:00"
19+ tz_str = "America/Los_Angeles"
20+
21+ ts1 = pd .Timestamp (dt_str , tz = tz_str )
22+ logging .info (f"Created timestamp ts1: { ts1 } " )
23+
24+ ts2 = ts1 + pd .Timedelta (hours = 0 ) # This here, should create the same timestamp
25+ logging .info (f"Created timestamp ts2: { ts2 } " )
26+
27+ # Now we verify that the timestamps compare equal
28+ assert ts1 == ts2 , "Timestamps are not considered equal when they should be."
29+ logging .info ("Timestamps are equal" )
30+
31+ # Important to Convert to UTC before comparing hash values to avoid Daylight Saving Time (DST) issues
32+ ts1_utc = ts1 .tz_convert ('UTC' )
33+ logging .info (f"Converted ts1 to UTC: { ts1_utc } " )
34+
35+ ts2_utc = ts2 .tz_convert ('UTC' )
36+ logging .info (f"Converted ts2 to UTC: { ts2_utc } " )
37+
38+ # Finally we erify that their hash values are the same, to successfully achieve testing
39+ assert hash (ts1_utc ) == hash (ts2_utc ), "Hashes of equal Timestamps do not match after normalization."
40+ logging .info ("Hashes of timestamps are equal" )
0 commit comments