```ruby
require File.dirname(__FILE__) + '/../../spec_helper'
require File.dirname(__FILE__) + '/fixtures/classes'

describe "Numeric#ceil" do
  before(:each) do
    @obj = NumericSub.new
  end
  
  it "converts self to a Float (using #to_f) and returns the #ceil'ed result" do
    @obj.should_receive(:to_f).and_return(1 + TOLERANCE, - 1 - TOLERANCE)
    @obj.ceil.should == 2
    @obj.ceil.should == -1
  end
end
```

Use mock_numeric rather than NumericSub
user
```ruby
require File.dirname(__FILE__) + '/../../spec_helper'
require File.dirname(__FILE__) + '/fixtures/classes'

describe "Numeric#ceil" do
  it "converts self to a Float (using #to_f) and returns the #ceil'ed result" do
    o = mock_numeric("ceil")
    o.should_receive(:to_f).and_return(1 + TOLERANCE)
    o.ceil.should == 2

    o2 = mock_numeric("ceil")
    v = -1 - TOLERANCE
    o2.should_receive(:to_f).and_return(v)
    o2.ceil.should == -1
  end
end
```
assistant