Merge pull request #2298 from github/add-proximity-test

Add proximity test for colors
This commit is contained in:
Arfon Smith
2015-04-06 13:15:32 -05:00
5 changed files with 93 additions and 68 deletions

View File

@@ -23,4 +23,5 @@ Gem::Specification.new do |s|
s.add_development_dependency 'pry'
s.add_development_dependency 'rake'
s.add_development_dependency 'yajl-ruby'
s.add_development_dependency 'color-proximity', '~> 0.2.1'
end

View File

@@ -46,7 +46,7 @@ AGS Script:
AMPL:
type: programming
color: "#00008B"
color: "#E6EFBB"
extensions:
- .ampl
tm_scope: source.ampl
@@ -61,7 +61,7 @@ ANTLR:
APL:
type: programming
color: "#8a0707"
color: "#5A8164"
extensions:
- .apl
- .dyalog
@@ -101,7 +101,7 @@ ATS:
ActionScript:
type: programming
tm_scope: source.actionscript.3
color: "#e3491a"
color: "#882B0F"
search_term: as3
aliases:
- actionscript 3
@@ -125,7 +125,7 @@ Ada:
Agda:
type: programming
color: "#467C91"
color: "#315665"
extensions:
- .agda
ace_mode: text
@@ -175,7 +175,7 @@ AppleScript:
Arc:
type: programming
color: "#ca2afe"
color: "#aa2afe"
extensions:
- .arc
tm_scope: none
@@ -201,7 +201,7 @@ AsciiDoc:
AspectJ:
type: programming
color: "#1957b0"
color: "#a957b0"
extensions:
- .aj
tm_scope: none
@@ -240,7 +240,7 @@ AutoHotkey:
AutoIt:
type: programming
color: "#36699B"
color: "#1C3552"
aliases:
- au3
- AutoIt3
@@ -498,14 +498,14 @@ ChucK:
Cirru:
type: programming
color: "#aaaaff"
color: "#ccccff"
ace_mode: cirru
extensions:
- .cirru
Clean:
type: programming
color: "#3a81ad"
color: "#3F85AF"
extensions:
- .icl
- .dcl
@@ -645,7 +645,7 @@ Creole:
Crystal:
type: programming
color: "#76EEF5"
color: "#776791"
extensions:
- .cr
ace_mode: ruby
@@ -705,7 +705,7 @@ D-ObjDump:
DM:
type: programming
color: "#075ff1"
color: "#447265"
extensions:
- .dm
aliases:
@@ -737,7 +737,7 @@ Darcs Patch:
Dart:
type: programming
color: "#98BAD6"
color: "#00B4AB"
extensions:
- .dart
ace_mode: dart
@@ -772,7 +772,7 @@ Dogescript:
Dylan:
type: programming
color: "#3ebc27"
color: "#6c616e"
extensions:
- .dylan
- .dyl
@@ -799,7 +799,7 @@ ECL:
Eagle:
type: markup
color: "#3994bc"
color: "#814C05"
extensions:
- .sch
- .brd
@@ -857,7 +857,7 @@ Emacs Lisp:
EmberScript:
type: programming
color: "#f64e3e"
color: "#FFF4F3"
extensions:
- .em
- .emberscript
@@ -866,7 +866,7 @@ EmberScript:
Erlang:
type: programming
color: "#0faf8d"
color: "#B83998"
extensions:
- .erl
- .es
@@ -895,7 +895,7 @@ F#:
FLUX:
type: programming
color: "#33CCFF"
color: "#88ccff"
extensions:
- .fx
- .flux
@@ -1045,7 +1045,7 @@ GLSL:
Game Maker Language:
type: programming
color: "#8ad353"
color: "#8fb200"
extensions:
- .gml
tm_scope: source.c++
@@ -1119,7 +1119,7 @@ Go:
Golo:
type: programming
color: "#f6a51f"
color: "#88562A"
extensions:
- .golo
tm_scope: source.golo
@@ -1158,7 +1158,7 @@ Grammatical Framework:
extensions:
- .gf
searchable: true
color: "#ff0000"
color: "#79aa7a"
tm_scope: source.haskell
ace_mode: haskell
@@ -1326,7 +1326,7 @@ Haxe:
Hy:
type: programming
ace_mode: text
color: "#7891b1"
color: "#7790B2"
extensions:
- .hy
aliases:
@@ -1335,7 +1335,7 @@ Hy:
IDL:
type: programming
color: "#e3592c"
color: "#a3522f"
extensions:
- .pro
- .dlm
@@ -1420,7 +1420,7 @@ Ioke:
Isabelle:
type: programming
color: "#fdcd00"
color: "#FEFE00"
extensions:
- .thy
tm_scope: source.isabelle.theory
@@ -1428,7 +1428,7 @@ Isabelle:
J:
type: programming
color: "#2d8abd"
color: "#9EEDFF"
extensions:
- .ijs
tm_scope: source.j
@@ -1556,7 +1556,7 @@ Julia:
KRL:
type: programming
color: "#f5c800"
color: "#28431f"
extensions:
- .krl
tm_scope: none
@@ -1627,7 +1627,7 @@ LabVIEW:
Lasso:
type: programming
color: "#2584c3"
color: "#999999"
extensions:
- .lasso
- .las
@@ -1787,7 +1787,7 @@ M:
MTML:
type: markup
color: "#0095d9"
color: "#b7e1f4"
extensions:
- .mtml
tm_scope: text.html.basic
@@ -1882,7 +1882,7 @@ Maven POM:
Max:
type: programming
color: "#ce279c"
color: "#c4a79c"
aliases:
- max/msp
- maxmsp
@@ -1906,7 +1906,7 @@ MediaWiki:
Mercury:
type: programming
color: "#abcdef"
color: "#ff2b2b"
ace_mode: prolog
interpreters:
- mmi
@@ -1987,14 +1987,14 @@ NSIS:
Nemerle:
type: programming
color: "#0d3c6e"
color: "#3d3c6e"
extensions:
- .n
ace_mode: text
NetLinx:
type: programming
color: "#0000ff"
color: "#0aa0ff"
extensions:
- .axs
- .axi
@@ -2003,7 +2003,7 @@ NetLinx:
NetLinx+ERB:
type: programming
color: "#407fff"
color: "#747faa"
extensions:
- .axs.erb
- .axi.erb
@@ -2012,7 +2012,7 @@ NetLinx+ERB:
NetLogo:
type: programming
color: "#ff2b2b"
color: "#ff6375"
extensions:
- .nlogo
tm_scope: source.lisp
@@ -2021,7 +2021,7 @@ NetLogo:
NewLisp:
type: programming
lexer: NewLisp
color: "#eedd66"
color: "#87AED7"
extensions:
- .nl
- .lisp
@@ -2058,7 +2058,7 @@ Ninja:
Nit:
type: programming
color: "#0d8921"
color: "#009917"
extensions:
- .nit
tm_scope: source.nit
@@ -2066,7 +2066,7 @@ Nit:
Nix:
type: programming
color: "#7070ff"
color: "#7e7eff"
extensions:
- .nix
aliases:
@@ -2138,7 +2138,7 @@ Objective-C:
Objective-C++:
type: programming
tm_scope: source.objc++
color: "#4886FC"
color: "#6866fb"
aliases:
- obj-c++
- objc++
@@ -2229,7 +2229,7 @@ Ox:
Oxygene:
type: programming
color: "#5a63a3"
color: "#cdd0e3"
extensions:
- .oxygene
tm_scope: none
@@ -2237,7 +2237,7 @@ Oxygene:
Oz:
type: programming
color: "#fcaf3e"
color: "#fab738"
extensions:
- .oz
tm_scope: source.oz
@@ -2373,7 +2373,7 @@ Perl:
Perl6:
type: programming
color: "#0298c3"
color: "#0000fb"
extensions:
- .6pl
- .6pm
@@ -2403,7 +2403,7 @@ PigLatin:
Pike:
type: programming
color: "#066ab2"
color: "#005390"
extensions:
- .pike
- .pmod
@@ -2449,7 +2449,7 @@ PowerShell:
Processing:
type: programming
color: "#2779ab"
color: "#0096D8"
extensions:
- .pde
ace_mode: text
@@ -2468,7 +2468,7 @@ Prolog:
Propeller Spin:
type: programming
color: "#2b446d"
color: "#7fa2a7"
extensions:
- .spin
tm_scope: source.spin
@@ -2494,7 +2494,7 @@ Public Key:
Puppet:
type: programming
color: "#cc5555"
color: "#332A77"
extensions:
- .pp
filenames:
@@ -2520,7 +2520,7 @@ PureBasic:
PureScript:
type: programming
color: "#bcdc53"
color: "#1D222D"
extensions:
- .purs
tm_scope: source.haskell
@@ -2529,7 +2529,7 @@ PureScript:
Python:
type: programming
ace_mode: python
color: "#3581ba"
color: "#3572A5"
extensions:
- .py
- .cgi
@@ -2647,7 +2647,7 @@ RMarkdown:
Racket:
type: programming
color: "#ae17ff"
color: "#22228f"
extensions:
- .rkt
- .rktd
@@ -2660,7 +2660,7 @@ Racket:
Ragel in Ruby Host:
type: programming
color: "#ff9c2e"
color: "#e17600"
extensions:
- .rl
aliases:
@@ -2791,7 +2791,7 @@ Rust:
SAS:
type: programming
color: "#1E90FF"
color: "#B34936"
extensions:
- .sas
tm_scope: source.sas
@@ -2815,7 +2815,7 @@ SPARQL:
SQF:
type: programming
color: "#FFCB1F"
color: "#3F3F3F"
extensions:
- .sqf
- .hqf
@@ -2992,7 +2992,7 @@ Slash:
Slim:
group: HTML
type: markup
color: "#ff8877"
color: "#ff8f77"
extensions:
- .slim
ace_mode: text
@@ -3015,7 +3015,7 @@ Smarty:
SourcePawn:
type: programming
color: "#f69e1d"
color: "#5c7611"
aliases:
- sourcemod
extensions:
@@ -3083,7 +3083,7 @@ Swift:
SystemVerilog:
type: programming
color: "#343761"
color: "#DAE1C2"
extensions:
- .sv
- .svh
@@ -3208,7 +3208,7 @@ Twig:
TypeScript:
type: programming
color: "#31859c"
color: "#2b7489"
aliases:
- ts
extensions:
@@ -3220,7 +3220,7 @@ Unified Parallel C:
type: programming
group: C
ace_mode: c_cpp
color: "#755223"
color: "#4e3617"
extensions:
- .upc
tm_scope: source.c
@@ -3234,8 +3234,8 @@ UnrealScript:
ace_mode: java
VCL:
group: Perl
type: programming
color: "#0298c3"
extensions:
- .vcl
tm_scope: source.varnish.vcl
@@ -3243,7 +3243,7 @@ VCL:
VHDL:
type: programming
color: "#543978"
color: "#adb2cb"
extensions:
- .vhdl
- .vhd
@@ -3257,7 +3257,7 @@ VHDL:
Vala:
type: programming
color: "#ee7d06"
color: "#fbe5cd"
extensions:
- .vala
- .vapi
@@ -3265,7 +3265,7 @@ Vala:
Verilog:
type: programming
color: "#848bf3"
color: "#b2b7f8"
extensions:
- .v
- .veo
@@ -3273,7 +3273,7 @@ Verilog:
VimL:
type: programming
color: "#199c4b"
color: "#199f4b"
search_term: vim
aliases:
- vim
@@ -3309,7 +3309,7 @@ Visual Basic:
Volt:
type: programming
color: "#0098db"
color: "#1F1F1F"
extensions:
- .volt
tm_scope: source.d
@@ -3317,7 +3317,7 @@ Volt:
Web Ontology Language:
type: markup
color: "#3994bc"
color: "#9cc9dd"
extensions:
- .owl
tm_scope: text.xml
@@ -3433,7 +3433,7 @@ XProc:
XQuery:
type: programming
color: "#2700e2"
color: "#5232e7"
extensions:
- .xquery
- .xq
@@ -3516,7 +3516,7 @@ desktop:
eC:
type: programming
color: "#4A4773"
color: "#913960"
search_term: ec
extensions:
- .ec
@@ -3548,7 +3548,7 @@ mupad:
nesC:
type: programming
color: "#ffce3b"
color: "#94B0C7"
extensions:
- .nc
ace_mode: text
@@ -3581,7 +3581,7 @@ wisp:
xBase:
type: programming
color: "#3a4040"
color: "#403a40"
extensions:
- .prg
tm_scope: none

View File

@@ -2,6 +2,7 @@ require "bundler/setup"
require "minitest/autorun"
require "mocha/setup"
require "linguist"
require 'color-proximity'
def fixtures_path
File.expand_path("../fixtures", __FILE__)

View File

@@ -0,0 +1,23 @@
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

View File

@@ -286,9 +286,9 @@ class TestLanguage < Minitest::Test
def test_color
assert_equal '#701516', Language['Ruby'].color
assert_equal '#3581ba', Language['Python'].color
assert_equal '#3572A5', Language['Python'].color
assert_equal '#f1e05a', Language['JavaScript'].color
assert_equal '#31859c', Language['TypeScript'].color
assert_equal '#2b7489', Language['TypeScript'].color
assert_equal '#3d9970', Language['LSL'].color
end