128   | 
   128   | 
   129 def time_needed[T](i: Int, code: => T) = { | 
   129 def time_needed[T](i: Int, code: => T) = { | 
   130   val start = System.nanoTime()  | 
   130   val start = System.nanoTime()  | 
   131   for (j <- 1 to i) code  | 
   131   for (j <- 1 to i) code  | 
   132   val end = System.nanoTime()  | 
   132   val end = System.nanoTime()  | 
   133   (end - start)/(i * 1.0e9)  | 
   133   "%.5f".format((end - start)/(i * 1.0e9))  | 
   134 }  | 
   134 }  | 
   135   | 
   135   | 
   136 for (i <- 0 to 5000000 by 500000) { | 
   136 for (i <- 0 to 5000000 by 500000) { | 
   137   println(i + " " + "%.5f".format(time_needed(2, matcher(EVIL, "a" * i))))  | 
   137   println(s"$i ${time_needed(2, matcher(EVIL, "a" * i))} secs.")  | 
   138 }  | 
   138 }  | 
   139   | 
   139   | 
   140 // another "power" test case   | 
   140 // another "power" test case   | 
   141 simp(Iterator.iterate(ONE:Rexp)(r => SEQ(r, ONE | ONE)).drop(50).next) == ONE  | 
   141 simp(Iterator.iterate(ONE:Rexp)(r => SEQ(r, ONE | ONE)).drop(50).next()) == ONE  | 
   142   | 
   142   | 
   143 // the Iterator produces the rexp  | 
   143 // the Iterator produces the rexp  | 
   144 //  | 
   144 //  | 
   145 //      SEQ(SEQ(SEQ(..., ONE | ONE) , ONE | ONE), ONE | ONE)  | 
   145 //      SEQ(SEQ(SEQ(..., ONE | ONE) , ONE | ONE), ONE | ONE)  | 
   146 //  | 
   146 //  |