(@problem 1)
;;
;; The following func7on design may have errors in it. Please fix the error
;; or errors that you find. Any changes you make should preserve the exis7ng
;; design intent. NOTE THAT when fixing an error in exis7ng code the best
;; prac7ce is to change as liHle of the code as possible. That is because
;; in most organiza7ons someone will have to review any changes you make,
;; and changing only what you really mean to change will make that person's
;; job easier. Remember always that the goal is to be kind to your fellow
;; programmers.
;;
;; First uncomment the en7re func7on design, and then fix the error.
;; If you are unable to find and fix the error, leave it commented out.
;; Note that when fixing a bug in an exis7ng program your goal should
;; be to have a light touch. If there is a small simple way to fix
;; something then do it the small and simple way.
;;
;; Your solu7on must include @htdf, @signature, and @template-origin tags.
(@htdf stack)
(@signature Image Image -> Image)
;; stack images, widest on boHom, first on boHom if same width
(check-expect (stack (rectangle 10 5 "solid" "blue")
(rectangle 20 9 "solid" "red"))
(above (rectangle 10 5 "solid" "blue")
(rectangle 20 9 "solid" "red")))
(check-expect (stack (rectangle 20 5 "solid" "blue")
(rectangle 20 9 "solid" "red"))
(above (rectangle 20 9 "solid" "red")
(rectangle 20 5 "solid" "blue")))
(check-expect (stack (rectangle 20 5 "solid" "blue")
(rectangle 10 9 "solid" "red"))
(above (rectangle 10 9 "solid" "red")
(rectangle 20 5 "solid" "blue")))
;(define (stack i1 i2) i1) ;stub
(@template-origin Image)
(@template
(define (stack i1 i2)
(... i1 i2)))
, (define (stack i1 i2)
(if (>= (image-width i1) (image-width i2))
(above i2 i1)
(above i1 i2)))
(@problem 2)
;;
;; The following data design may have errors in it. Please fix the error or
;; errors that you find. Any changes you make should preserve the exis7ng
;; design intent. Again, change only the parts of the code you really need
;; to change.
;;
;; Your solu7on must include @htdd tag, @dd-template-rules tag, and a NOT
;; commented fn-for-site template.
;;
(@htdd Site)
;; Site is one of:
;; - "Vancouver"
;; - "Okanagan"
;; - "Robson"
;; - "CDM"
;; interp. a UBC site
;; <Examples are redundant for enumera7ons>
(@dd-template-rules one-of
atomic-dis7nct
atomic-dis7nct
atomic-dis7nct
atomic-dis7nct)
(define (fn-for-site s)
(cond [(string=? s "Vancouver") (...)]
[(string=? s "Okanagan") (...)]
[(string=? s "Robson") (...)]
[(string=? s "CDM") (...)]))
;;
;; The following func7on design may have errors in it. Please fix the error
;; or errors that you find. Any changes you make should preserve the exis7ng
;; design intent. NOTE THAT when fixing an error in exis7ng code the best
;; prac7ce is to change as liHle of the code as possible. That is because
;; in most organiza7ons someone will have to review any changes you make,
;; and changing only what you really mean to change will make that person's
;; job easier. Remember always that the goal is to be kind to your fellow
;; programmers.
;;
;; First uncomment the en7re func7on design, and then fix the error.
;; If you are unable to find and fix the error, leave it commented out.
;; Note that when fixing a bug in an exis7ng program your goal should
;; be to have a light touch. If there is a small simple way to fix
;; something then do it the small and simple way.
;;
;; Your solu7on must include @htdf, @signature, and @template-origin tags.
(@htdf stack)
(@signature Image Image -> Image)
;; stack images, widest on boHom, first on boHom if same width
(check-expect (stack (rectangle 10 5 "solid" "blue")
(rectangle 20 9 "solid" "red"))
(above (rectangle 10 5 "solid" "blue")
(rectangle 20 9 "solid" "red")))
(check-expect (stack (rectangle 20 5 "solid" "blue")
(rectangle 20 9 "solid" "red"))
(above (rectangle 20 9 "solid" "red")
(rectangle 20 5 "solid" "blue")))
(check-expect (stack (rectangle 20 5 "solid" "blue")
(rectangle 10 9 "solid" "red"))
(above (rectangle 10 9 "solid" "red")
(rectangle 20 5 "solid" "blue")))
;(define (stack i1 i2) i1) ;stub
(@template-origin Image)
(@template
(define (stack i1 i2)
(... i1 i2)))
, (define (stack i1 i2)
(if (>= (image-width i1) (image-width i2))
(above i2 i1)
(above i1 i2)))
(@problem 2)
;;
;; The following data design may have errors in it. Please fix the error or
;; errors that you find. Any changes you make should preserve the exis7ng
;; design intent. Again, change only the parts of the code you really need
;; to change.
;;
;; Your solu7on must include @htdd tag, @dd-template-rules tag, and a NOT
;; commented fn-for-site template.
;;
(@htdd Site)
;; Site is one of:
;; - "Vancouver"
;; - "Okanagan"
;; - "Robson"
;; - "CDM"
;; interp. a UBC site
;; <Examples are redundant for enumera7ons>
(@dd-template-rules one-of
atomic-dis7nct
atomic-dis7nct
atomic-dis7nct
atomic-dis7nct)
(define (fn-for-site s)
(cond [(string=? s "Vancouver") (...)]
[(string=? s "Okanagan") (...)]
[(string=? s "Robson") (...)]
[(string=? s "CDM") (...)]))