module Fastlane::Comparator
Public Class Methods
compare(expected_file, actual_file, diff_path, fuzz)
click to toggle source
# File lib/fastlane/plugin/snapshot_test/helper/comparator.rb, line 7 def self.compare(expected_file, actual_file, diff_path, fuzz) UI.message "compare #{actual_file} and #{expected_file}" system("compare -metric AE -fuzz #{fuzz} #{actual_file.shellescape} #{expected_file.shellescape} #{diff_path.shellescape}") end
compare_dir(expected_dir, actual_dir, diff_dir, fuzz)
click to toggle source
# File lib/fastlane/plugin/snapshot_test/helper/comparator.rb, line 12 def self.compare_dir(expected_dir, actual_dir, diff_dir, fuzz) UI.message "Compare #{expected_dir} and #{actual_dir}" expect_items = Dir.glob("#{expected_dir}/*.jpg").map { |path| File.basename(path) } actual_items = Dir.glob("#{actual_dir}/*.jpg").map { |path| File.basename(path) } new_items = actual_items - expect_items deleted_items = expect_items - actual_items passed_items = [] changed_items = [] (actual_items & expect_items).each { |fileName| is_passed = compare("#{actual_dir}/#{fileName}", "#{expected_dir}/#{fileName}", "#{diff_dir}/#{fileName}", fuzz) if is_passed passed_items << fileName else changed_items << fileName end } { :passed_items => passed_items, :changed_items => changed_items, :new_items => new_items, :deleted_items => deleted_items } end