On Thu, 2007-03-08 at 02:16 +0900, David Chelimsky wrote:
> On 3/7/07, Daniel Schierbeck <daniel.schierbeck / gmail.com> wrote:
> > On Wed, 2007-03-07 at 23:18 +0900, Trans wrote:
> > >
> > > 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.
> >
> > I must admit to being a great fan of RSpec, although the pace of API
> > changes has thrown me off for now,
> 
> Thanks for being a fan. FWIW, the recent API changes are the last
> significant ones. What's new in 0.8 will be the basis of 1.0.
> 
> Cheers,
> David

Lovely :) It's a great tool!


Daniel