From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: David Ponce via "Bug reports for GNU Emacs, the Swiss army knife of text editors" Newsgroups: gmane.emacs.bugs Subject: bug#70093: *** SPAM *** bug#70093: Remove unnecessary `image-tests--map-equal' Date: Tue, 2 Apr 2024 12:36:31 +0200 Message-ID: <3d281f2a-9871-4345-9fb0-3c918943affe@orange.fr> References: <877chjcxfg.fsf@breatheoutbreathe.in> <1d1367e3-d888-4a00-8204-1bb6c3607801@orange.fr> <87frw6c0dv.fsf@breatheoutbreathe.in> Reply-To: David Ponce Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12581"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla Thunderbird Cc: 70093@debbugs.gnu.org, Eli Zaretskii To: Joseph Turner Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Tue Apr 02 12:37:23 2024 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1rrbW7-00032v-63 for geb-bug-gnu-emacs@m.gmane-mx.org; Tue, 02 Apr 2024 12:37:23 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rrbVl-00069v-DJ; Tue, 02 Apr 2024 06:37:01 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rrbVj-00069I-JK for bug-gnu-emacs@gnu.org; Tue, 02 Apr 2024 06:36:59 -0400 Original-Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rrbVj-0003a5-9Y for bug-gnu-emacs@gnu.org; Tue, 02 Apr 2024 06:36:59 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rrbVm-0001bf-KS for bug-gnu-emacs@gnu.org; Tue, 02 Apr 2024 06:37:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: David Ponce Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 02 Apr 2024 10:37:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 70093 X-GNU-PR-Package: emacs Original-Received: via spool by 70093-submit@debbugs.gnu.org id=B70093.17120542056085 (code B ref 70093); Tue, 02 Apr 2024 10:37:02 +0000 Original-Received: (at 70093) by debbugs.gnu.org; 2 Apr 2024 10:36:45 +0000 Original-Received: from localhost ([127.0.0.1]:52640 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrbVU-0001a4-N7 for submit@debbugs.gnu.org; Tue, 02 Apr 2024 06:36:45 -0400 Original-Received: from smtp-26.smtpout.orange.fr ([80.12.242.26]:49212 helo=smtp.smtpout.orange.fr) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rrbVN-0001ZO-C7 for 70093@debbugs.gnu.org; Tue, 02 Apr 2024 06:36:42 -0400 Original-Received: from [192.168.1.15] ([2.7.71.181]) by smtp.orange.fr with ESMTPA id rbVHrDvLBD2ZqrbVHrSzS0; Tue, 02 Apr 2024 12:36:32 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=orange.fr; s=t20230301; t=1712054192; bh=3NXzxYM6/YwDToCrOWGOKJdsxKNsDdjIZkbCMwzkyJQ=; h=Message-ID:Date:MIME-Version:Subject:From:To; b=TO935Iq6qKoDKFt5vo0xW8gBfiCMk6DFb4qT1n/7lmFQ+KTiACfrPk6dPsOJbyK5X j/SJ5zdaYhKk0RkRM+du/FpSpC1+fixbKmU80SCyTt9NhTB5MRJGUEV5JpK2xNh0Ps fcJQUgTFEKSIuejPQEeyhYzUlmMivjLIYAaH/xges3p+cvDUBrc3X2tLucBL7yYElv E+FxrChBO6yjq2I5b6ShZiNIyVL8JKy6vA47vTDhf2ETxup+opdHgeL8Ja+cvnKJH6 Bh6m1/pdnSRzQSxbibBTD4mzwjUUBevSB8/t3qWqnanYNhd9CGZuhjO8vGLIdMSfcF 1KyZZMvr8qEnw== X-ME-Helo: [192.168.1.15] X-ME-Auth: ZGFfdmlkQHdhbmFkb28uZnI= X-ME-Date: Tue, 02 Apr 2024 12:36:32 +0200 X-ME-IP: 2.7.71.181 Content-Language: fr, en-US In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.bugs:282505 Archived-At: [...]> But these 2 tests fails: > > 1. >     (setf (image-property image :scale) 1) >     (setf (image-property image :rotation) 90) >     (should (equal (image--compute-map image) >                                     rotated-map)) > >     ;; Return >     ((((circle (199 . 41) . 24) "a" (help-echo "A")) >      ((rect (79 . 5) 127 . 77) "b" (help-echo "B")) >      ((poly . [199 161 206 160 213 154 218 146 221 136 223 125 221 114 218 104 213 96 206 91 199 89 191 91 185 96 179 104 176 114 175 125 176 136 179 146 185 154 191 160]) "c" (help-echo "C"))) >     ;; Instead of >     (((circle (126 . 41) . 24) "a" (help-echo "A")) >      ((rect (6 . 5) 54 . 77) "b" (help-echo "B")) >      ((poly . [126 161 133 160 140 154 145 146 148 136 150 125 148 114 145 104 140 96 133 91 126 89 118 91 112 96 106 104 103 114 102 125 103 136 106 146 112 154 118 160]) "c" (help-echo "C")))) >     ;; All the result X coords are different, but Y coords are expected. > > 2. >     (setf (image-property image :rotation) 0) >     (setf (image-property image :flip) t) >     (should (equal (image--compute-map image) >                                     flipped-map)) > >     ;; Return >     ((((circle (205 . 29) . 24) "a" (help-echo "A")) >      ((rect (169 . 101) 241 . 149) "b" (help-echo "B")) >      ((poly . [85 29 86 22 92 15 100 10 110 7 121 5 132 7 142 10 150 15 155 22 157 29 155 37 150 43 142 49 132 52 121 53 110 52 100 49 92 43 86 37]) "c" (help-echo "C"))) >     ;; Instead of >     (((circle (125 . 29) . 24) "a" (help-echo "A")) >      ((rect (89 . 101) 161 . 149) "b" (help-echo "B")) >      ((poly . [5 29 6 22 12 15 20 10 30 7 41 5 52 7 62 10 70 15 75 22 77 29 75 37 70 43 62 49 52 52 41 53 30 52 20 49 12 43 6 37]) "c" (help-echo "C")))) >     ;; All the result X coords are different, but Y coords are expected. > > On my laptop: > >   (image-size (image--image-without-parameters image) t) => (228 . 246) > > Hope it will help to understand the reason. [...] Hello, I am still trying to understand why the 2 tests above fails with my configuration. From the test `image--compute-map-and-original-map' I wrote the below equivalent code to be evaled in the *scratch* buffer, in order to observe and analyze the results interactively. The shapes are derived from the hot spots coordinates to ensure a strict visual correspondance between a shape and its hot spot. On my configuration, all the computed map from the different image variations are correct. You can test it by hovering the different produced colored shapes with the mouse, and observe the mouse pointer and help-echo changes. My conclusion at this point is that the values of `flipped-map' and `rotated-map' are not correct for my configuration, but I don't know why. If you can try the below code and observe the result on your configuration, maybe could we get a better understanding of what is happening for the 2 tests that fail? Thanks! ______________________________________________________________________________ (let* ((svg (svg-create "125pt" "116pt")) ;; 246px X 228px on my conf. (original-map '(((circle (41 . 29) . 24) "a" (help-echo "A")) ((rect (5 . 101) 77 . 149) "b" (help-echo "B")) ((poly . [ 161 29 160 22 154 15 146 10 136 7 125 5 114 7 104 10 96 15 91 22 89 29 91 37 96 43 104 49 114 52 125 53 136 52 146 49 154 43 160 37]) "c" (help-echo "C")))) (scaled-map '(((circle (82 . 58) . 48) "a" (help-echo "A")) ((rect (10 . 202) 154 . 298) "b" (help-echo "B")) ((poly . [ 322 58 320 44 308 30 292 20 272 14 250 10 228 14 208 20 192 30 182 44 178 58 182 74 192 86 208 98 228 104 250 106 272 104 292 98 308 86 320 74]) "c" (help-echo "C")))) (flipped-map '(((circle (125 . 29) . 24) "a" (help-echo "A")) ((rect (89 . 101) 161 . 149) "b" (help-echo "B")) ((poly . [ 5 29 6 22 12 15 20 10 30 7 41 5 52 7 62 10 70 15 75 22 77 29 75 37 70 43 62 49 52 52 41 53 30 52 20 49 12 43 6 37]) "c" (help-echo "C")))) (rotated-map '(((circle (126 . 41) . 24) "a" (help-echo "A")) ((rect (6 . 5) 54 . 77) "b" (help-echo "B")) ((poly . [ 126 161 133 160 140 154 145 146 148 136 150 125 148 114 145 104 140 96 133 91 126 89 118 91 112 96 106 104 103 114 102 125 103 136 106 146 112 154 118 160]) "c" (help-echo "C")))) (scaled-rotated-flipped-map '(((circle (58 . 82) . 48) "a" (help-echo "A")) ((rect (202 . 10) 298 . 154) "b" (help-echo "B")) ((poly . [ 58 322 44 320 30 308 20 292 14 272 10 250 14 228 20 208 30 192 44 182 58 178 74 182 86 192 98 208 104 228 106 250 104 272 98 292 86 308 74 320]) "c" (help-echo "C")))) ) (svg-rectangle svg 5 101 (- 77 5) (- 149 101) :stroke-width 0 :fill "red") (svg-circle svg 41 29 24 :stroke-width 0 :fill "green") (svg-polyline svg '((161 . 29) (160 . 22) (154 . 15) (146 . 10) (136 . 7) (125 . 5) (114 . 7) (104 . 10) (96 . 15) (91 . 22) (89 . 29) (91 . 37) (96 . 43) (104 . 49) (114 . 52) (125 . 53) (136 . 52) (146 . 49) (154 . 43) (160 . 37)) :stroke-width 0 :fill "blue") (let ((image (svg-image svg :map scaled-rotated-flipped-map :scale 2 :rotation 90 :flip t))) ;; Test that `image--compute-original-map' correctly generates ;; original-map when creating an already transformed image. (insert (format "\n:flip %s :rotation %s :scale %s (equal :original-map original-map)=>%s" (image-property image :flip) (image-property image :rotation) (image-property image :scale) (equal (image-property image :original-map) original-map))) (print image) (insert-image image) (setf (image-property image :flip) nil) (setf (image-property image :rotation) 0) (setf (image-property image :scale) 2) (let ((map (image--compute-map image))) (insert (format "\n:flip %s :rotation %s :scale %s (equal map scaled-map)=>%s" (image-property image :flip) (image-property image :rotation) (image-property image :scale) (equal map scaled-map))) (setf (image-property image :map) map) (print image) ;; insert a new image in current buffer. (insert-image (copy-tree image t)) ) (setf (image-property image :scale) 1) (setf (image-property image :rotation) 90) (let ((map (image--compute-map image))) (insert (format "\n:flip %s :rotation %s :scale %s (equal map rotated-map)=>%s" (image-property image :flip) (image-property image :rotation) (image-property image :scale) (equal map rotated-map))) (setf (image-property image :map) map) (print image) ;; insert a new image in current buffer. (insert-image (copy-tree image t)) ) (setf (image-property image :rotation) 0) (setf (image-property image :flip) t) (let ((map (image--compute-map image))) (insert (format "\n:flip %s :rotation %s :scale %s (equal map flipped-map)=>%s" (image-property image :flip) (image-property image :rotation) (image-property image :scale) (equal map flipped-map))) (setf (image-property image :map) map) (print image) ;; insert a new image in current buffer. (insert-image (copy-tree image t)) ) (setf (image-property image :scale) 2) (setf (image-property image :rotation) 90) (let ((map (image--compute-map image))) (insert (format "\n:flip %s :rotation %s :scale %s (equal map scaled-rotated-flipped-map)=>%s" (image-property image :flip) (image-property image :rotation) (image-property image :scale) (equal map scaled-rotated-flipped-map))) (setf (image-property image :map) map) (print image) ;; insert a new image in current buffer. (insert-image (copy-tree image t)) ) ))