diff options
Diffstat (limited to 'compat-tests.el')
| -rw-r--r-- | compat-tests.el | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/compat-tests.el b/compat-tests.el index 223d0dd..baba1c2 100644 --- a/compat-tests.el +++ b/compat-tests.el @@ -56,6 +56,7 @@ (require 'time-date) (require 'image) (require 'text-property-search nil t) +(require 'color) ;; Setup tramp mock (require 'tramp) @@ -2681,6 +2682,45 @@ (should-not (color-values-from-color-spec "rgbi : 0/0/0")) (should-not (color-values-from-color-spec "rgbi:0/0.5/10"))) +(defun compat--color-approx-equal (color1 color2) + "Return t if COLOR1 and COLOR2 are approximately equal." + (seq-every-p + (lambda (x) (< (abs x) 0.00001)) + (cl-mapcar #'- color1 color2))) + +(ert-deftest compat-color-oklab-to-xyz () + (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0 0 0) '(0.0 0.0 0.0))) + (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 1.0 0.0 0.0) + '(0.95047005 1.0 1.0883001))) + (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0.450 1.236 -0.019) '(1.000604 -0.000008 -0.000038))) + (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0.922 -0.671 0.263) '(0.000305 1.000504 0.000898))) + (should (compat--color-approx-equal (compat-call color-oklab-to-xyz 0.153 -1.415 -0.449) '(0.000590 0.000057 1.001650)))) + +(ert-deftest compat-color-xyz-to-oklab () + (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 0 0 0) '(0.0 0.0 0.0))) + (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 0.95 1.0 1.089) + '(0.999969 -0.000258 -0.000115))) + (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 1.0 0.0 0.0) + '(0.449932 1.235710 -0.019028))) + (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 0.0 1.0 0.0) + '(0.921817 -0.671238 0.263324))) + (should (compat--color-approx-equal (compat-call color-xyz-to-oklab 0.0 0.0 1.0) + '(0.152603 -1.414997 -0.448927)))) + +(ert-deftest compat-color-srgb-to-oklab () + (should (equal (compat-call color-srgb-to-oklab 0 0 0) '(0.0 0.0 0.0))) + (should + (compat--color-approx-equal (compat-call color-srgb-to-oklab 0 0 1) '(0.451978 -0.032430 -0.311611))) + (should + (compat--color-approx-equal (compat-call color-srgb-to-oklab 0.1 0.2 0.3) '(0.313828 -0.019091 -0.052561)))) + +(ert-deftest compat-color-oklab-to-srgb () + (should (equal (compat-call color-oklab-to-srgb 0 0 0) '(0.0 0.0 0.0))) + (should + (compat--color-approx-equal (compat-call color-oklab-to-srgb 0.451978 -0.032430 -0.311611) '(0.0 0.0 1.0))) + (should + (compat--color-approx-equal (compat-call color-oklab-to-srgb 0.313828 -0.019091 -0.052561) '(0.1 0.2 0.3)))) + (ert-deftest compat-lookup-key () (let ((a-map (make-sparse-keymap)) (b-map (make-sparse-keymap))) |
