File: match_pixels_matcher.rb

package info (click to toggle)
ruby-rmagick 6.0.1-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 8,232 kB
  • sloc: cpp: 19,563; ruby: 17,147; sh: 88; javascript: 36; makefile: 13
file content (24 lines) | stat: -rw-r--r-- 623 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
module Matchers
  class MatchPixels
    attr_accessor :actual, :expected, :delta

    def initialize(expected, delta:)
      self.expected = expected.flatten
      self.delta = delta
    end

    def matches?(actual)
      self.actual = actual

      actual.export_pixels.each_with_index.all? do |value, index|
        expected_value = expected[index]
        value.between?(expected_value - delta, expected_value + delta)
      end
    end

    def failure_message
      "expected all pixel values to differ by max #{delta}\n" \
        "\nexpected: #{expected}\n     got: #{actual.export_pixels}\n\n\n"
    end
  end
end