From 80be72b6e10a787bd28092ec4a34a699e77b8786 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sun, 13 Jul 2014 08:50:54 -0700 Subject: [PATCH] colors.distances: add some tests, refactor locals a little bit. --- extra/colors/distances/distances-tests.factor | 18 ++++++++++++++++++ extra/colors/distances/distances.factor | 16 ++++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) create mode 100644 extra/colors/distances/distances-tests.factor diff --git a/extra/colors/distances/distances-tests.factor b/extra/colors/distances/distances-tests.factor new file mode 100644 index 0000000000..f73bfb2fb3 --- /dev/null +++ b/extra/colors/distances/distances-tests.factor @@ -0,0 +1,18 @@ +USING: colors combinators tools.test ; +IN: colors.distances + +{ + 0x1.05d584e1086dep6 ! 65.45851470579098 + 0x1.37bbbd6552ee2p6 ! 77.93333967512766 + 0x1.1c031c5c4748dp7 ! 142.0060757481591 + 0x1.5aaed5f26115p6 ! 86.6707380172495 +} [ + 50/255 100/255 200/255 1.0 + 100/255 200/255 50/255 1.0 + { + [ CIEDE2000 ] + [ CIE94 ] + [ CIE76 ] + [ CMC-l:c ] + } 2cleave +] unit-test diff --git a/extra/colors/distances/distances.factor b/extra/colors/distances/distances.factor index 91b1e20b5f..8cb71ce10b 100644 --- a/extra/colors/distances/distances.factor +++ b/extra/colors/distances/distances.factor @@ -94,13 +94,17 @@ PRIVATE> color1 >laba :> lab1 color2 >laba :> lab2 + lab1 lab2 [ l>> ] bi@ :> ( l1 l2 ) + lab1 lab2 [ a>> ] bi@ :> ( a1 a2 ) + lab1 lab2 [ b>> ] bi@ :> ( b1 b2 ) + ! Calculate the delta values for each channel - lab1 lab2 [ l>> ] bi@ - :> dl - lab1 lab2 [ a>> ] bi@ - :> da - lab1 lab2 [ b>> ] bi@ - :> db - lab1 [ a>> ] [ b>> ] bi [ sq ] bi@ + sqrt :> c1 - lab2 [ a>> ] [ b>> ] bi [ sq ] bi@ + sqrt :> c2 - c1 c2 - :> dc + l2 l1 - :> dl + a2 a1 - :> da + b2 b1 - :> db + a1 sq b1 sq + sqrt :> c1 + a2 sq b2 sq + sqrt :> c2 + c2 c1 - :> dc da sq db sq + dc sq - sqrt :> dh ! graphics arts: