main_templates3/re.scala
changeset 400 e48ea8300b2d
parent 396 3ffe978a5664
child 418 fa7f7144f2bb
equal deleted inserted replaced
399:b17a98b0c52f 400:e48ea8300b2d
   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 //