@@ -443,6 +443,12 @@ def _create_auto_date_locator(date1, date2):
443
443
locator = _create_auto_date_locator (d1 , d2 )
444
444
assert list (map (str , mdates .num2date (locator ()))) == expected
445
445
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
+
446
452
447
453
@_new_epoch_decorator
448
454
def test_auto_date_locator_intmult ():
@@ -1097,7 +1103,7 @@ def test_DayLocator():
1097
1103
1098
1104
def test_tz_utc ():
1099
1105
dt = datetime .datetime (1970 , 1 , 1 , tzinfo = mdates .UTC )
1100
- dt .tzname ()
1106
+ assert dt .tzname () == 'UTC'
1101
1107
1102
1108
1103
1109
@pytest .mark .parametrize ("x, tdelta" ,
@@ -1226,3 +1232,58 @@ def test_julian2num():
1226
1232
mdates .set_epoch ('1970-01-01T00:00:00' )
1227
1233
assert mdates .julian2num (2440588.5 ) == 1.0
1228
1234
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