adding all of botlist, initial add
[botlist.git] / openbotlist / WEB-INF / lib / ruby / rspec / lib / spec / matchers / be_close.rb
blob7763eb97ec3a283c62c8a558e7c323cc2617bdd8
1 module Spec
2   module Matchers
4     class BeClose #:nodoc:
5       def initialize(expected, delta)
6         @expected = expected
7         @delta = delta
8       end
9       
10       def matches?(actual)
11         @actual = actual
12         (@actual - @expected).abs < @delta
13       end
14       
15       def failure_message
16         "expected #{@expected} +/- (< #{@delta}), got #{@actual}"
17       end
18       
19       def description
20         "be close to #{@expected} (within +- #{@delta})"
21       end
22     end
23     
24     # :call-seq:
25     #   should be_close(expected, delta)
26     #   should_not be_close(expected, delta)
27     #
28     # Passes if actual == expected +/- delta
29     #
30     # == Example
31     #
32     #   result.should be_close(3.0, 0.5)
33     def be_close(expected, delta)
34       Matchers::BeClose.new(expected, delta)
35     end
36   end
37 end