@@ -443,6 +443,12 @@ def _create_auto_date_locator(date1, date2):
443443 locator = _create_auto_date_locator (d1 , d2 )
444444 assert list (map (str , mdates .num2date (locator ()))) == expected
445445
446+ locator = mdates .AutoDateLocator (interval_multiples = False )
447+ assert locator .maxticks == {0 : 11 , 1 : 12 , 3 : 11 , 4 : 12 , 5 : 11 , 6 : 11 , 7 : 8 }
448+
449+ locator = mdates .AutoDateLocator (maxticks = 5 )
450+ assert locator .maxticks == {0 : 5 , 1 : 5 , 3 : 5 , 4 : 5 , 5 : 5 , 6 : 5 , 7 : 5 }
451+
446452
447453@_new_epoch_decorator
448454def test_auto_date_locator_intmult ():
@@ -1097,7 +1103,7 @@ def test_DayLocator():
10971103
10981104def test_tz_utc ():
10991105 dt = datetime .datetime (1970 , 1 , 1 , tzinfo = mdates .UTC )
1100- dt .tzname ()
1106+ assert dt .tzname () == 'UTC'
11011107
11021108
11031109@pytest .mark .parametrize ("x, tdelta" ,
@@ -1226,3 +1232,58 @@ def test_julian2num():
12261232 mdates .set_epoch ('1970-01-01T00:00:00' )
12271233 assert mdates .julian2num (2440588.5 ) == 1.0
12281234 assert mdates .num2julian (2.0 ) == 2440589.5
1235+
1236+
1237+ def test_rcparams_timezone ():
1238+ assert mdates ._get_rc_timezone () == mdates .UTC
1239+ tz = 'Europe/Iceland'
1240+ assert mdates ._get_rc_timezone () != dateutil .tz .gettz (tz )
1241+
1242+ plt .rcParams ['timezone' ] = tz
1243+
1244+ assert mdates ._get_rc_timezone () == dateutil .tz .gettz (tz )
1245+
1246+
1247+ def test_datestr2num ():
1248+ assert mdates .datestr2num ('2022-01-10' ) == 19002.0
1249+ dt = datetime .date (year = 2022 , month = 1 , day = 10 )
1250+ assert mdates .datestr2num ('2022-01' , default = dt ) == 19002.0
1251+ assert np .all (mdates .datestr2num (
1252+ ['2022-01' , '2022-02' ], default = dt
1253+ ) == np .array ([19002. , 19033. ]))
1254+ assert mdates .datestr2num ([]).size == 0
1255+ assert mdates .datestr2num ([], datetime .date (year = 2022 ,
1256+ month = 1 , day = 10 )).size == 0
1257+
1258+
1259+ def test_concise_formatter_exceptions ():
1260+ locator = mdates .AutoDateLocator ()
1261+ with pytest .raises (ValueError ):
1262+ mdates .ConciseDateFormatter (locator , formats = ['' , '%Y' ])
1263+
1264+ with pytest .raises (ValueError ):
1265+ mdates .ConciseDateFormatter (locator , zero_formats = ['' , '%Y' ])
1266+
1267+ with pytest .raises (ValueError ):
1268+ mdates .ConciseDateFormatter (locator , offset_formats = ['' , '%Y' ])
1269+
1270+
1271+ def test_concise_formatter_call ():
1272+ locator = mdates .AutoDateLocator ()
1273+ formatter = mdates .ConciseDateFormatter (locator )
1274+ assert formatter (19002.0 ) == '2022'
1275+ assert formatter .format_data_short (19002.0 ) == '2022-01-10 00:00:00'
1276+
1277+
1278+ def test_date_ticker_factory ():
1279+ data = (
1280+ (0.02 , mdates .MinuteLocator ),
1281+ (1 , mdates .HourLocator ),
1282+ (19 , mdates .DayLocator ),
1283+ (40 , mdates .WeekdayLocator ),
1284+ (200 , mdates .MonthLocator ),
1285+ (2000 , mdates .YearLocator ),
1286+ )
1287+ for span , expected_locator in data :
1288+ locator , _ = mdates .date_ticker_factory (span )
1289+ assert isinstance (locator , expected_locator )
0 commit comments