Minor discrepancies running Thomas' "Roman" program: why?

Hi,

I'm running Ruby 1.8.2 over WinXP-Pro/SP2.

I've written a variant of Dave Thomas' Decimal-to-Roman program from PickAxe 2. I get a couple of minor differences in execution..

One difference is that my assert statements that test values need a "to_s" to avoid failure. His do not, e.g.

    assert_equal('i', Roman.new(1).to_s)     assert_equal('ii', Roman.new(2).to_s)     assert_equal('iv', Roman.new(4).to_s)

My statement     assert_raise(RuntimeError, Roman.new(0)) shows up in the "errors" count and a traceback is produced. Dave's example shows no errors nor a traceback.

I test under SciTE and in a Command Window; they yield identical results.

Dave's book says he's covering the same Ruby version I'm using. Could it be he's developing on Uni* while I'm on Windows? The code's below if your interested.

Thanks in Advance, Richard

TestC.rb

<...>

My statement                 assert_raise(RuntimeError, Roman.new(0)) shows up in the "errors" count and a traceback is produced. Dave's example shows no errors nor a traceback.

<...>

Dave's book says he's covering the same Ruby version I'm using. Could it be he's developing on Uni* while I'm on Windows?

<...>

It has nothing to do with Uni* or Windows.

Your code: assert_raise(RuntimeError, Roman.new(0)) Dave's code: assert_raise(RuntimeError) { Roman.new(0) }

From the documentation of assert_raise:   assert_raise(*args) {|| ...}   Passes if the block raises one of the given exceptions.

Your code has no block...