@@ -80,6 +80,26 @@ def test_basic(self):
80
80
0.95 , 1 , 1.05 , 1.1 , 1.15 , 1.25 , 1.3 , 1.35 ])
81
81
assert_almost_equal (ax .xaxis .get_ticklocs (minor = True ), test_value )
82
82
83
+ # NB: the following values are assuming that *xlim* is [0, 5]
84
+ params = [
85
+ (0 , 0 ), # no major tick => no minor tick either
86
+ (1 , 0 ), # a single major tick => no minor tick
87
+ (2 , 4 ), # 1 "nice" major step => 1*5 minor **divisions**
88
+ (3 , 6 ) # 2 "not nice" major steps => 2*4 minor **divisions**
89
+ ]
90
+
91
+ @pytest .mark .parametrize ('nb_majorticks, expected_nb_minorticks' , params )
92
+ def test_low_number_of_majorticks (
93
+ self , nb_majorticks , expected_nb_minorticks ):
94
+ # This test is related to issue #8804
95
+ fig , ax = plt .subplots ()
96
+ xlims = (0 , 5 ) # easier to test the different code paths
97
+ ax .set_xlim (* xlims )
98
+ ax .set_xticks (np .linspace (xlims [0 ], xlims [1 ], nb_majorticks ))
99
+ ax .minorticks_on ()
100
+ ax .xaxis .set_minor_locator (mticker .AutoMinorLocator ())
101
+ assert len (ax .xaxis .get_minorticklocs ()) == expected_nb_minorticks
102
+
83
103
84
104
class TestLogLocator (object ):
85
105
def test_basic (self ):
0 commit comments