class Similatron::Comparison

Attributes

actual[R]
diff[R]
expected[R]
score[R]

Public Class Methods

new(expected:, actual:, score:, diff: nil, overwrite: nil) click to toggle source
# File lib/similatron/comparison.rb, line 6
def initialize(expected:, actual:, score:, diff: nil, overwrite: nil)
  @expected = expected
  @actual = actual
  @diff = diff
  @score = score
  @overwrite = overwrite
end

Public Instance Methods

as_json() click to toggle source
# File lib/similatron/comparison.rb, line 34
def as_json
  {
    expected: expected,
    actual: actual,
    diff: diff,
    score: score,
    same: !!same?, # rubocop:disable Style/DoubleNegation
    overwrite: !!overwrite? # rubocop:disable Style/DoubleNegation
  }
end
overwrite?() click to toggle source
# File lib/similatron/comparison.rb, line 18
def overwrite?
  @overwrite
end
raise_when_different() click to toggle source
# File lib/similatron/comparison.rb, line 22
def raise_when_different
  return if same?

  message_parts = [
    "Found #{actual} different from #{expected}\n",
    "Score: #{score}"
  ]
  message_parts << "\nDiff in #{diff}" if diff

  raise StandardError, message_parts.join
end
same?() click to toggle source
# File lib/similatron/comparison.rb, line 14
def same?
  @score.zero?
end