Class: Bparity::Verification::Comparator
- Inherits:
-
Object
- Object
- Bparity::Verification::Comparator
- Defined in:
- lib/bparity/verification.rb
Constant Summary collapse
- MODES =
%i[strict refinement contract].freeze
Instance Method Summary collapse
- #compare(expected, actual) ⇒ Object
- #contract? ⇒ Boolean
-
#initialize(mode: :refinement, float_tolerance: Float::EPSILON) ⇒ Comparator
constructor
A new instance of Comparator.
Constructor Details
#initialize(mode: :refinement, float_tolerance: Float::EPSILON) ⇒ Comparator
Returns a new instance of Comparator.
62 63 64 65 66 67 68 69 |
# File 'lib/bparity/verification.rb', line 62 def initialize(mode: :refinement, float_tolerance: Float::EPSILON) @mode = mode.to_sym @float_tolerance = float_tolerance return if MODES.include?(@mode) raise ConfigurationError, "Unknown conformance mode: #{mode}. Use strict, refinement, or contract." end |
Instance Method Details
#compare(expected, actual) ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/bparity/verification.rb', line 71 def compare(expected, actual) if @mode == :contract raise ConfigurationError, "Contract comparison requires operation contracts. Run it through Verification::Runner." end compare_values(expected, actual) end |
#contract? ⇒ Boolean
80 |
# File 'lib/bparity/verification.rb', line 80 def contract? = @mode == :contract |