From 1c15f267cdbef3ec1bd012a9bca0be229b92c6ab Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 26 Apr 2013 16:17:27 -0600 Subject: [PATCH] racket/draw: fix `in-region?' method of `region%' Merge to v5.3.4 original commit: 917ec51eeebcfe2e2a0057787cd3768b96df1fdb --- collects/tests/gracket/dc.rktl | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/collects/tests/gracket/dc.rktl b/collects/tests/gracket/dc.rktl index adb61ea8..98a77456 100644 --- a/collects/tests/gracket/dc.rktl +++ b/collects/tests/gracket/dc.rktl @@ -664,6 +664,47 @@ (test #f 'no-alpha (send bm2 has-alpha-channel?)) (test #f 'no-alpha (send bm3 has-alpha-channel?))) +;; ---------------------------------------- +;; Check `in-region?' + +(let () + (define r (new region%)) + (send r set-rectangle 0 0 100 100) + (test #t 'yes/r (send r in-region? 10 10)) + (test #f 'no/r (send r in-region? 110 110)) + (test #f 'no/r (send r in-region? 10 110)) + + (define r2 (new region%)) + (send r2 set-rectangle 120 120 10 10) + (send r2 union r) + + (test #t 'yes/r (send r in-region? 10 10)) + (test #t 'yes/r2 (send r2 in-region? 10 10)) + (test #f 'no/r (send r in-region? 125 125)) + (test #t 'yes/r2 (send r2 in-region? 125 125)) + (test #f 'no/r2 (send r2 in-region? 110 110))) + +(let () + (define bm (make-bitmap 50 50)) + (define dc (send bm make-dc)) + (send dc translate 10 10) + (define r (make-object region% dc)) + (send r set-rectangle 0 0 100 100) + (test #t 'yes (send r in-region? 5 5)) + (test #f 'no (send r in-region? 110 110))) + +(let () + (define bm (make-bitmap 50 50)) + (define dc (send bm make-dc)) + (send dc translate 10 10) + ;; dc's translation at creation of region sticks: + (define r (make-object region% dc)) + (send r set-rectangle 0 0 100 100) + (send dc translate -10 -10) + (test #f 'no (send r in-region? 5 5)) + (test #t 'yes (send r in-region? 105 105))) + + ;; ---------------------------------------- (report-errs)