@@ -99,9 +99,7 @@ def test_basic(self):
9999 # NB: the following values are assuming that *xlim* is [0, 5]
100100 params = [
101101 (0 , 0 ), # no major tick => no minor tick either
102- (1 , 0 ), # a single major tick => no minor tick
103- (2 , 4 ), # 1 "nice" major step => 1*5 minor **divisions**
104- (3 , 6 ) # 2 "not nice" major steps => 2*4 minor **divisions**
102+ (1 , 0 ) # a single major tick => no minor tick
105103 ]
106104
107105 @pytest .mark .parametrize ('nb_majorticks, expected_nb_minorticks' , params )
@@ -116,6 +114,32 @@ def test_low_number_of_majorticks(
116114 ax .xaxis .set_minor_locator (mticker .AutoMinorLocator ())
117115 assert len (ax .xaxis .get_minorticklocs ()) == expected_nb_minorticks
118116
117+ majorstep_minordivisions = [(1 , 5 ),
118+ (2 , 4 ),
119+ (2.5 , 5 ),
120+ (5 , 5 ),
121+ (10 , 5 )]
122+
123+ # This test is meant to verify the parameterization for
124+ # test_number_of_minor_ticks
125+ def test_using_all_default_major_steps (self ):
126+ with matplotlib .rc_context ({'_internal.classic_mode' : False }):
127+ majorsteps = [x [0 ] for x in self .majorstep_minordivisions ]
128+ assert np .allclose (majorsteps , mticker .AutoLocator ()._steps )
129+
130+ @pytest .mark .parametrize ('major_step, expected_nb_minordivisions' ,
131+ majorstep_minordivisions )
132+ def test_number_of_minor_ticks (
133+ self , major_step , expected_nb_minordivisions ):
134+ fig , ax = plt .subplots ()
135+ xlims = (0 , major_step )
136+ ax .set_xlim (* xlims )
137+ ax .set_xticks (xlims )
138+ ax .minorticks_on ()
139+ ax .xaxis .set_minor_locator (mticker .AutoMinorLocator ())
140+ nb_minor_divisions = len (ax .xaxis .get_minorticklocs ()) + 1
141+ assert nb_minor_divisions == expected_nb_minordivisions
142+
119143 limits = [(0 , 1.39 ), (0 , 0.139 ),
120144 (0 , 0.11e-19 ), (0 , 0.112e-12 ),
121145 (- 2.0e-07 , - 3.3e-08 ), (1.20e-06 , 1.42e-06 ),
0 commit comments