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 // |