Class: Bparity::Verification::Comparator

Inherits:
Object
  • Object
show all
Defined in:
lib/bparity/verification.rb

Constant Summary collapse

MODES =
%i[strict refinement contract].freeze

Instance Method Summary collapse

Constructor Details

#initialize(mode: :refinement, float_tolerance: Float::EPSILON) ⇒ Comparator

Returns a new instance of Comparator.

Raises:



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

Returns:

  • (Boolean)


80
# File 'lib/bparity/verification.rb', line 80

def contract? = @mode == :contract