On Mar 7, 8:26 am, Daniel Schierbeck <daniel.schierb... / gmail.com>
wrote:
> Reading Phrogz' post about automatic benchmark iterations, and then
> seeing Mauricios' lovely Adaptative Benchmark[1], I came to think we
> might need a friendlier syntax for benchmarks all together. Minutes
> later, I discovered that someone had almost the same idea as me[2].
> Anyway, I'd like to just throw it out here, and hear what you people
> think.
>
> The idea is to make benchmarks syntactically similar to the current
> Test::Unit test cases, e.g.
>
>   class SortBenchmark < Benchmark
>     def setup
>       @array = [1, 6, 2, 9, 4, 6, 2]
>     end
>
>     def teardown
>       @array = nil
>     end
>
>     def report_quicksort
>       @array.quicksort
>     end
>
>     def report_mergesort
>       @array.mergesort
>     end
>   end
>
> Automatic iteration could be added, either as a class method call or by
> creating a different base class (IterativeBenchmark?)
>
> So, what do y'all think? If I'm not the only one liking this, I might
> whip something up when I get some spare time...

Cool! Go BDD with it:

  benchmark "compare sorting methods" do

    compare "quick sort"
      @array.quicksort
    end

    compare "merge sort" do
      @array.mergesort
    end

  end

Or something like that.

T.