mirror of
https://github.com/KevinMidboe/linguist.git
synced 2025-10-28 17:20:22 +00:00
24 lines
840 B
Ruby
24 lines
840 B
Ruby
require_relative "./helper"
|
|
|
|
class TestColorProximity < Minitest::Test
|
|
include Linguist
|
|
|
|
def cut_hash(color)
|
|
color[1..-1] if color.start_with?('#')
|
|
end
|
|
|
|
def test_color_proximity
|
|
langs_with_colors = Language.all.reject { |language| language.color.nil? }
|
|
cp = ColorProximity.new(0.05, langs_with_colors.map { |lang| cut_hash(lang.color) })
|
|
failing_threshold = langs_with_colors.map do |lang|
|
|
state = cp.past_threshold?(cut_hash(lang.color))
|
|
if !state.first && lang.color != "##{state.last.first}"
|
|
"- #{lang} (#{lang.color}) is too close to #{state.last}"
|
|
end
|
|
end.compact
|
|
message = "The following #{failing_threshold.length} languages have failing color thresholds. Please modify the hex color.\n#{failing_threshold.join("\n")}"
|
|
|
|
assert failing_threshold.empty?, message
|
|
end
|
|
end
|