@@ -173,9 +173,8 @@ fn generate_ticks(min: f64, max: f64, step_size: f64) -> Vec<f64> {
173173 } else {
174174 // entirely negative axis
175175 ticks. extend (
176- ( 1 ..)
177- . map ( |n| -1.0 * fix ( f64:: from ( n) * step_size) )
178- . skip_while ( |& v| v > max)
176+ ( 0 ..)
177+ . map ( |n| -1.0 * fix ( ( f64:: from ( n) * step_size) - max) )
179178 . take_while ( |& v| v >= min)
180179 . collect :: < Vec < f64 > > ( )
181180 . iter ( )
@@ -185,9 +184,8 @@ fn generate_ticks(min: f64, max: f64, step_size: f64) -> Vec<f64> {
185184 } else {
186185 // entirely positive axis
187186 ticks. extend (
188- ( 1 ..)
189- . map ( |n| fix ( f64:: from ( n) * step_size) )
190- . skip_while ( |& v| v < min)
187+ ( 0 ..)
188+ . map ( |n| fix ( ( f64:: from ( n) * step_size) + min) )
191189 . take_while ( |& v| v <= max) ,
192190 ) ;
193191 }
@@ -254,7 +252,7 @@ mod tests {
254252 assert_eq ! ( number_of_ticks( -7.93 , 15.58 , 5.0 ) , 5 ) ;
255253 assert_eq ! ( number_of_ticks( 0.0 , 15.0 , 4.0 ) , 4 ) ;
256254 assert_eq ! ( number_of_ticks( 0.0 , 15.0 , 5.0 ) , 4 ) ;
257- assert_eq ! ( number_of_ticks( 5.0 , 21.0 , 4.0 ) , 4 ) ;
255+ assert_eq ! ( number_of_ticks( 5.0 , 21.0 , 4.0 ) , 5 ) ;
258256 assert_eq ! ( number_of_ticks( 5.0 , 21.0 , 5.0 ) , 4 ) ;
259257 assert_eq ! ( number_of_ticks( -8.0 , 15.58 , 4.0 ) , 6 ) ;
260258 assert_eq ! ( number_of_ticks( -8.0 , 15.58 , 5.0 ) , 5 ) ;
@@ -388,7 +386,7 @@ mod tests {
388386 [ 0.0 , 1000.0 , 2000.0 , 3000.0 ]
389387 ) ;
390388
391- assert_eq ! ( calculate_ticks( -10 .0, -3 .0, 6 ) , [ -10.0 , -8.0 , -6.0 , -4.0 ] ) ;
389+ assert_eq ! ( calculate_ticks( -11 .0, -4 .0, 6 ) , [ -10.0 , -8.0 , -6.0 , -4.0 ] ) ;
392390
393391 // test rounding
394392 assert_eq ! ( calculate_ticks( 1.0 , 1.5 , 6 ) , [ 1.0 , 1.1 , 1.2 , 1.3 , 1.4 , 1.5 ] ) ;
0 commit comments