Class: Bidi2pdf::TestHelpers::Images::ImageSimilarityChecker
- Inherits:
-
Object
- Object
- Bidi2pdf::TestHelpers::Images::ImageSimilarityChecker
- Defined in:
- lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb
Instance Method Summary collapse
- #actual_fingerprint ⇒ Object
- #different? ⇒ Boolean
- #distance ⇒ Object
- #expected_fingerprint ⇒ Object
- #fingerprint(image) ⇒ Object
-
#initialize(expected_image, image_to_check) ⇒ ImageSimilarityChecker
constructor
A new instance of ImageSimilarityChecker.
- #similar?(tolerance: 20) ⇒ Boolean
- #slightly_similar? ⇒ Boolean
- #very_similar? ⇒ Boolean
Constructor Details
#initialize(expected_image, image_to_check) ⇒ ImageSimilarityChecker
Returns a new instance of ImageSimilarityChecker.
9 10 11 12 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 9 def initialize(expected_image, image_to_check) @expected_image = expected_image.is_a?(Vips::Image) ? expected_image : Vips::Image.new_from_file(expected_image) @image_to_check = image_to_check.is_a?(Vips::Image) ? image_to_check : Vips::Image.new_from_file(image_to_check) end |
Instance Method Details
#actual_fingerprint ⇒ Object
34 35 36 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 34 def actual_fingerprint @actual_fingerprint ||= fingerprint @image_to_check end |
#different? ⇒ Boolean
26 27 28 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 26 def different? !slightly_similar? end |
#distance ⇒ Object
38 39 40 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 38 def distance @distance ||= DHashVips::IDHash.distance(expected_fingerprint, actual_fingerprint) end |
#expected_fingerprint ⇒ Object
30 31 32 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 30 def expected_fingerprint @expected_fingerprint ||= fingerprint @expected_image end |
#fingerprint(image) ⇒ Object
42 43 44 45 46 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 42 def fingerprint(image) image = image.resize(32.0 / [image.width, image.height].min) if image.width < 32 || image.height < 32 DHashVips::IDHash.fingerprint image end |
#similar?(tolerance: 20) ⇒ Boolean
14 15 16 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 14 def similar?(tolerance: 20) distance < tolerance end |
#slightly_similar? ⇒ Boolean
22 23 24 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 22 def slightly_similar? similar? tolerance: 25 end |
#very_similar? ⇒ Boolean
18 19 20 |
# File 'lib/bidi2pdf/test_helpers/images/image_similarity_checker.rb', line 18 def very_similar? similar? tolerance: 20 end |