changelog shortlog tags changeset manifest revisions annotate raw

vendor/plugins/rspec/lib/spec/matchers/be_close.rb

changeset 15: 64acf98d15f4
author: moriq@moriq.com
date: Mon Mar 10 10:12:58 2008 +0900 (16 years ago)
permissions: -rw-r--r--
description: add plugins rspec
1module Spec
2 module Matchers
3
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
37end