Project

General

Profile

Bug #11406

Updated by nobu (Nobuyoshi Nakada) over 8 years ago

# Steps to Reproduce 

 In Ruby v2.2.2 

 1. Create a range of strings using 'foo1' up to 'foo9': 

     ~~~ruby 
     

 ('foo1'..'foo9').to_a 
     
 => ["foo1", "foo2", "foo3", "foo4", "foo5", "foo6", "foo7", "foo8", "foo9"] 
     ~~~ 

     

 Observe the results are as we expect 

 2. 2 Create a range of strings using 'foo1' up to 'foo10' 

     ~~~ruby 
       
 ('foo1'..'foo10').to_a 
     
 => ["foo1", "foo2","foo3","foo4","foo5", "foo6", "foo7", "foo8", "foo9", "fop0","fop1", "fop2", "fop3", "fop4", "fop5", "fop6", "fop7", "fop8", "fop9", "foq0", ....] 
     ~~~ 
     

 Also: 

     ~~~ruby 
     

 ('foo1'..'foo10').to_a.size 
     
 => 4707939 
     ~~~ 

     

 Observe that the output loops `1..9` 1..9 about 523104 times (arbitrarily?) 

 # Expected Results 

 The output in step 1 makes me expect for Ruby's range class to intelligently create ranges using a strings that include integers inside them. However this only seems to work for `1..9` 1..9 ranges. 

 # Actual Results 
 Inconsistent behavior for range creation. 

Back