@@ -1219,3 +1219,71 @@ def test_ncol_ncols(fig_test, fig_ref):
1219
1219
ncols = 3
1220
1220
fig_test .legend (strings , ncol = ncols )
1221
1221
fig_ref .legend (strings , ncols = ncols )
1222
+
1223
+
1224
+ def test_loc_invalid_tuple_exception ():
1225
+ # check that exception is raised if the loc arg
1226
+ # of legend is not a 2-tuple of numbers
1227
+ fig , ax = plt .subplots ()
1228
+ with pytest .raises (ValueError , match = ('loc must be string, coordinate '
1229
+ 'tuple or, an integer 0-10, not \\ (1.1,\\ )' )):
1230
+ ax .legend (loc = (1.1 , ))
1231
+
1232
+ with pytest .raises (ValueError , match = ('loc must be string, coordinate '
1233
+ 'tuple or, an integer 0-10, not \\ (0.481, 0.4227, 0.4523\\ )' )):
1234
+ ax .legend (loc = (0.481 , 0.4227 , 0.4523 ))
1235
+
1236
+ with pytest .raises (ValueError , match = ('loc must be string, coordinate '
1237
+ 'tuple or, an integer 0-10, not \\ (0.481, \' go blue\' \\ )' )):
1238
+ ax .legend (loc = (0.481 , "go blue" ))
1239
+
1240
+
1241
+ def test_loc_valid_tuple ():
1242
+ fig , ax = plt .subplots ()
1243
+ ax .legend (loc = (0.481 , 0.442 ))
1244
+ ax .legend (loc = (1 , 2 ))
1245
+
1246
+
1247
+ def test_loc_invalid_type ():
1248
+ fig , ax = plt .subplots ()
1249
+ with pytest .raises (ValueError , match = ("loc must be string, coordinate "
1250
+ "tuple or, an integer 0-10, not {'not': True}" )):
1251
+ ax .legend (loc = {'not' : True })
1252
+
1253
+
1254
+ def test_loc_validation_string_numeric_value ():
1255
+ fig , ax = plt .subplots ()
1256
+ ax .legend (loc = 0 )
1257
+ ax .legend (loc = 1 )
1258
+ ax .legend (loc = 5 )
1259
+ ax .legend (loc = 10 )
1260
+ with pytest .raises (ValueError , match = ('loc must be string, coordinate '
1261
+ 'tuple or, an integer 0-10, not 11' )):
1262
+ ax .legend (loc = 11 )
1263
+
1264
+ with pytest .raises (ValueError , match = ('loc must be string, coordinate '
1265
+ 'tuple or, an integer 0-10, not -1' )):
1266
+ ax .legend (loc = - 1 )
1267
+
1268
+
1269
+ def test_loc_validation_string_value ():
1270
+ fig , ax = plt .subplots ()
1271
+ ax .legend (loc = 'best' )
1272
+ ax .legend (loc = 'upper right' )
1273
+ ax .legend (loc = 'best' )
1274
+ ax .legend (loc = 'upper right' )
1275
+ ax .legend (loc = 'upper left' )
1276
+ ax .legend (loc = 'lower left' )
1277
+ ax .legend (loc = 'lower right' )
1278
+ ax .legend (loc = 'right' )
1279
+ ax .legend (loc = 'center left' )
1280
+ ax .legend (loc = 'center right' )
1281
+ ax .legend (loc = 'lower center' )
1282
+ ax .legend (loc = 'upper center' )
1283
+ s = ("'wrong' is not a valid value for"
1284
+ " loc; supported values are 'best', 'upper right', "
1285
+ "'upper left', 'lower left', 'lower right', 'right',"
1286
+ " 'center left', 'center right', 'lower center', "
1287
+ "'upper center', 'center'" )
1288
+ with pytest .raises (ValueError , match = s ):
1289
+ ax .legend (loc = 'wrong' )
0 commit comments