@@ -1860,16 +1860,26 @@ func TestZoneBounds(t *testing.T) {
18601860 5 : {Date (1991 , September , 14 , 17 , 0 , 0 , 0 , loc ), boundTwo , boundThree },
18611861 6 : {Date (1991 , September , 15 , 0 , 50 , 0 , 0 , loc ), boundTwo , boundThree },
18621862
1863+ // The ZoneBounds of a "Asia/Shanghai" after the last transition (Standard Time)
1864+ 7 : {boundThree , boundThree , Time {}},
1865+ 8 : {Date (1991 , December , 15 , 1 , 50 , 0 , 0 , loc ), boundThree , Time {}},
1866+ 9 : {Date (1992 , April , 13 , 17 , 50 , 0 , 0 , loc ), boundThree , Time {}},
1867+ 10 : {Date (1992 , April , 13 , 18 , 0 , 0 , 0 , loc ), boundThree , Time {}},
1868+ 11 : {Date (1992 , April , 14 , 1 , 50 , 0 , 0 , loc ), boundThree , Time {}},
1869+ 12 : {Date (1992 , September , 14 , 16 , 50 , 0 , 0 , loc ), boundThree , Time {}},
1870+ 13 : {Date (1992 , September , 14 , 17 , 0 , 0 , 0 , loc ), boundThree , Time {}},
1871+ 14 : {Date (1992 , September , 15 , 0 , 50 , 0 , 0 , loc ), boundThree , Time {}},
1872+
18631873 // The ZoneBounds of a local time would return two local Time.
18641874 // Note: We preloaded "America/Los_Angeles" as time.Local for testing
1865- 7 : {makeLocalTime (0 ), makeLocalTime (- 5756400 ), makeLocalTime (9972000 )},
1866- 8 : {makeLocalTime (1221681866 ), makeLocalTime (1205056800 ), makeLocalTime (1225616400 )},
1867- 9 : {makeLocalTime (2152173599 ), makeLocalTime (2145916800 ), makeLocalTime (2152173600 )},
1868- 10 : {makeLocalTime (2152173600 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1869- 11 : {makeLocalTime (2152173601 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1870- 12 : {makeLocalTime (2159200800 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1871- 13 : {makeLocalTime (2172733199 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1872- 14 : {makeLocalTime (2172733200 ), makeLocalTime (2172733200 ), makeLocalTime (2177452800 )},
1875+ 15 : {makeLocalTime (0 ), makeLocalTime (- 5756400 ), makeLocalTime (9972000 )},
1876+ 16 : {makeLocalTime (1221681866 ), makeLocalTime (1205056800 ), makeLocalTime (1225616400 )},
1877+ 17 : {makeLocalTime (2152173599 ), makeLocalTime (2145916800 ), makeLocalTime (2152173600 )},
1878+ 18 : {makeLocalTime (2152173600 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1879+ 19 : {makeLocalTime (2152173601 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1880+ 20 : {makeLocalTime (2159200800 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1881+ 21 : {makeLocalTime (2172733199 ), makeLocalTime (2152173600 ), makeLocalTime (2172733200 )},
1882+ 22 : {makeLocalTime (2172733200 ), makeLocalTime (2172733200 ), makeLocalTime (2177452800 )},
18731883 }
18741884 for i , tt := range realTests {
18751885 start , end := tt .giveTime .ZoneBounds ()
0 commit comments