<div dir="ltr">Please, rebase instead of merging. Thank you.</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Apr 18, 2013 at 11:42 AM,  <span dir="ltr">&lt;<a href="mailto:sbloch@racket-lang.org" target="_blank">sbloch@racket-lang.org</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">sbloch has updated `master&#39; from 85eab5610f to 7a33712603.<br>
  <a href="http://git.racket-lang.org/plt/85eab5610f..7a33712603" target="_blank">http://git.racket-lang.org/plt/85eab5610f..7a33712603</a><br>
<br>
=====[ 2 Commits ]======================================================<br>
Directory summary:<br>
 100.0% collects/picturing-programs/private/<br>
<br>
~~~~~~~~~~<br>
<br>
6740ab5 Stephen Bloch &lt;<a href="mailto:sbloch@adelphi.edu">sbloch@adelphi.edu</a>&gt; 2013-04-18 12:40<br>
:<br>
| Corrected a variety of wrong-arg-type error messages for map-image,<br>
| build-image, et al.<br>
|<br>
| Please merge to release branch.<br>
:<br>
  M collects/picturing-programs/private/map-image.rkt | 72 +++++++++++++++-----<br>
<br>
~~~~~~~~~~<br>
<br>
7a33712 Stephen Bloch &lt;<a href="mailto:sbloch@adelphi.edu">sbloch@adelphi.edu</a>&gt; 2013-04-18 12:41<br>
:<br>
| Merge branch &#39;master&#39; of pltgit:plt<br>
| I&#39;m not sure why this is non-fast-forwardable, but it apparently is.<br>
:<br>
: *** Trivial merge (omitting list) ***<br>
:<br>
<br>
=====[ Overall Diff ]===================================================<br>
<br>
collects/picturing-programs/private/map-image.rkt<br>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
--- OLD/collects/picturing-programs/private/map-image.rkt<br>
+++ NEW/collects/picturing-programs/private/map-image.rkt<br>
@@ -276,9 +276,9 @@<br>
   (unless (natural? h)<br>
     (error &#39;build3-image<br>
        (format &quot;Expected a natural number as second argument, but received ~v&quot; h)))<br>
-  (check-procedure-arity rfunc 2 &#39;build3-image &quot;Expected a function with contract num(x) num(y) -&gt; color as third argument&quot;)<br>
-  (check-procedure-arity gfunc 2 &#39;build3-image &quot;Expected a function with contract num(x) num(y) -&gt; color as fourth argument&quot;)<br>
-  (check-procedure-arity bfunc 2 &#39;build3-image &quot;Expected a function with contract num(x) num(y) -&gt; color as fifth argument&quot;)<br>
+  (check-procedure-arity rfunc 2 &#39;build3-image &quot;Expected a function with contract num(x) num(y) -&gt; [0-255] as third argument&quot;)<br>
+  (check-procedure-arity gfunc 2 &#39;build3-image &quot;Expected a function with contract num(x) num(y) -&gt; [0-255] as fourth argument&quot;)<br>
+  (check-procedure-arity bfunc 2 &#39;build3-image &quot;Expected a function with contract num(x) num(y) -&gt; [0-255] as fifth argument&quot;)<br>
   (build-image-internal w h<br>
                         (lambda (x y)<br>
                           (make-color (rfunc x y) (gfunc x y) (bfunc x y)))))<br>
@@ -292,10 +292,10 @@<br>
   (unless (natural? h)<br>
     (error &#39;build4-image<br>
        (format &quot;Expected a natural number as second argument, but received ~v&quot; h)))<br>
-  (check-procedure-arity rfunc 2 &#39;build-image &quot;Expected a function with contract num(x) num(y) -&gt; color as third argument&quot;)<br>
-  (check-procedure-arity gfunc 2 &#39;build-image &quot;Expected a function with contract num(x) num(y) -&gt; color as fourth argument&quot;)<br>
-  (check-procedure-arity bfunc 2 &#39;build-image &quot;Expected a function with contract num(x) num(y) -&gt; color as fifth argument&quot;)<br>
-  (check-procedure-arity afunc 2 &#39;build-image &quot;Expected a function with contract num(x) num(y) -&gt; color as sixth argument&quot;)<br>
+  (check-procedure-arity rfunc 2 &#39;build4-image &quot;Expected a function with contract num(x) num(y) -&gt; [0-255] as third argument&quot;)<br>
+  (check-procedure-arity gfunc 2 &#39;build4-image &quot;Expected a function with contract num(x) num(y) -&gt; [0-255] as fourth argument&quot;)<br>
+  (check-procedure-arity bfunc 2 &#39;build4-image &quot;Expected a function with contract num(x) num(y) -&gt; [0-255] as fifth argument&quot;)<br>
+  (check-procedure-arity afunc 2 &#39;build4-image &quot;Expected a function with contract num(x) num(y) -&gt; [0-255] as sixth argument&quot;)<br>
   (build-image-internal w h<br>
                         (lambda (x y)<br>
                           (make-color (rfunc x y) (gfunc x y) (bfunc x y) (afunc x y)))))<br>
@@ -327,7 +327,7 @@<br>
          (map-image-internal (colorize-func f) img)]<br>
         [(procedure-arity-includes? f 1)            ; allow f : color-&gt;color as a simple case<br>
          (map-image-internal (colorize-func (lambda (x y c) (f c))) img)]<br>
-        [else (error &#39;map-image &quot;Expected a function of one or three parameters as first argument&quot;)]))<br>
+        [else (error &#39;map-image &quot;Expected a function of one or three parameters, returning a color, as first argument&quot;)]))<br>
<br>
 ; map-image/extra : (nat nat color X -&gt; broad-color) image X -&gt; image<br>
 ; Like map-image, but passes a fixed extra argument to every call of the function.<br>
@@ -340,7 +340,7 @@<br>
          (map-image-internal (colorize-func (lambda (x y c) (f x y c extra))) img)]<br>
         [(procedure-arity-includes? f 2)<br>
          (map-image-internal (colorize-func (lambda (x y c) (f c extra))) img)]<br>
-        [else (error &#39;map-image/extra &quot;Expected a function taking two or four parameters as first argument&quot;)]))<br>
+        [else (error &#39;map-image/extra &quot;Expected a function taking two or four parameters, returning a color, as first argument&quot;)]))<br>
<br>
<br>
<br>
@@ -353,9 +353,9 @@<br>
 ; image -&gt; image<br>
 ; Note: by default, preserves alpha values from old image.<br>
 (define (map3-image rfunc gfunc bfunc pic)<br>
-  (check-procedure-arity rfunc 5 &#39;map3-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; num(r) as first argument&quot;)<br>
-  (check-procedure-arity gfunc 5 &#39;map3-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; num(g) as second argument&quot;)<br>
-  (check-procedure-arity bfunc 5 &#39;map3-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; num(b) as third argument&quot;)<br>
+  (check-procedure-arity rfunc 5 &#39;map3-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; [0-255] as first argument&quot;)<br>
+  (check-procedure-arity gfunc 5 &#39;map3-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; [0-255] as second argument&quot;)<br>
+  (check-procedure-arity bfunc 5 &#39;map3-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; [0-255] as third argument&quot;)<br>
   (unless (image? pic)<br>
     (error &#39;map3-image<br>
        (format &quot;Expected an image as fourth argument, but received ~v&quot; pic)))<br>
@@ -374,10 +374,10 @@<br>
 ;  (int(x) int(y) int(r) int(g) int(b) int(a) -&gt; int(a))<br>
 ;  image -&gt; image<br>
 (define (map4-image rfunc gfunc bfunc afunc pic)<br>
-  (check-procedure-arity rfunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(alpha) -&gt; num(r) as first argument&quot;)<br>
-  (check-procedure-arity gfunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(alpha) -&gt; num(g) as second argument&quot;)<br>
-  (check-procedure-arity bfunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(alpha) -&gt; num(b) as third argument&quot;)<br>
-  (check-procedure-arity afunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(alpha) -&gt; num(alpha) as fourth argument&quot;)<br>
+  (check-procedure-arity rfunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as first argument&quot;)<br>
+  (check-procedure-arity gfunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as second argument&quot;)<br>
+  (check-procedure-arity bfunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as third argument&quot;)<br>
+  (check-procedure-arity afunc 6 &#39;map4-image &quot;Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as fourth argument&quot;)<br>
   (unless (image? pic)<br>
     (error &#39;map4-image<br>
        &quot;Expected an image as fifth argument, but received ~v&quot; pic))<br>
@@ -428,3 +428,43 @@<br>
         [else (error &#39;fold-image/extra &quot;Expected a function taking three or five parameters as first argument&quot;)]<br>
         ))<br>
<br>
+  (module+ test<br>
+           (require &quot;book-pictures.rkt&quot;)<br>
+(require test-engine/racket-tests)<br>
+(check-error (build-image 100 100 add1)<br>
+&quot;build-image: Expected a function with contract num(x) num(y) -&gt; color as third argument&quot;)<br>
+(check-error (build-image/extra 100 100 add1 4)<br>
+&quot;build-image/extra: Expected a function with contract num(x) num(y) any -&gt; color as third argument&quot;)<br>
+(check-error (build3-image 100 100 add1 + +)<br>
+&quot;build3-image: Expected a function with contract num(x) num(y) -&gt; [0-255] as third argument&quot;)<br>
+(check-error (build3-image 100 100 + add1 +)<br>
+&quot;build3-image: Expected a function with contract num(x) num(y) -&gt; [0-255] as fourth argument&quot;)<br>
+(check-error (build3-image 100 100 + + add1)<br>
+&quot;build3-image: Expected a function with contract num(x) num(y) -&gt; [0-255] as fifth argument&quot;)<br>
+(check-error (build4-image 100 100 add1 + + +)<br>
+&quot;build4-image: Expected a function with contract num(x) num(y) -&gt; [0-255] as third argument&quot;)<br>
+(check-error (build4-image 100 100 + add1 + +)<br>
+&quot;build4-image: Expected a function with contract num(x) num(y) -&gt; [0-255] as fourth argument&quot;)<br>
+(check-error (build4-image 100 100 + + add1 +)<br>
+&quot;build4-image: Expected a function with contract num(x) num(y) -&gt; [0-255] as fifth argument&quot;)<br>
+(check-error (build4-image 100 100 + + + add1)<br>
+&quot;build4-image: Expected a function with contract num(x) num(y) -&gt; [0-255] as sixth argument&quot;)<br>
+(check-error (map3-image add1 + + pic:bloch)<br>
+&quot;map3-image: Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; [0-255] as first argument&quot;)<br>
+(check-error (map3-image + add1 + pic:bloch)<br>
+&quot;map3-image: Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; [0-255] as second argument&quot;)<br>
+(check-error (map3-image + + add1 pic:bloch)<br>
+&quot;map3-image: Expected a function with contract num(x) num(y) num(r) num(g) num(b) -&gt; [0-255] as third argument&quot;)<br>
+(check-error (map4-image add1 + + + pic:bloch)<br>
+&quot;map4-image: Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as first argument&quot;)<br>
+(check-error (map4-image + add1 + + pic:bloch)<br>
+&quot;map4-image: Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as second argument&quot;)<br>
+(check-error (map4-image + + add1 + pic:bloch)<br>
+&quot;map4-image: Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as third argument&quot;)<br>
+(check-error (map4-image + + + add1 pic:bloch)<br>
+&quot;map4-image: Expected a function with contract num(x) num(y) num(r) num(g) num(b) num(a) -&gt; [0-255] as fourth argument&quot;)<br>
+; more checks<br>
+;(check-error (map-image (lambda (c) c) pic:bloch)<br>
+;             &quot;No, this should NOT produce an error.&quot;)<br>
+(test)<br>
+) ; end of test module<br>
</blockquote></div><br></div>