
1. Lots of #lang-ization, other racketizations, code improvements, etc. 2. Some files that were not working now do. 3. "collects/tests/aligned-pasteboard" had some files that were near duplicates of "collects/mrlib/private/aligned-pasteboard/tests". I've removed the former since in a few places it looked like an older version (eg, there were bogus references to a non-existent "utils.rkt"). The former has more files that are in runnable condition now. 4. There are plenty of tests that look like they're failing, but it wasn't shown since they just return #f, and when they were running with a "-f" these results weren't displayed. 5. I have no idea about the code, this is all just reshuffling and minor editing.
129 lines
4.6 KiB
Racket
129 lines
4.6 KiB
Racket
#lang racket/gui
|
|
|
|
(require "test-macro.rkt" "../snip-lib.rkt"
|
|
"../aligned-pasteboard.rkt" "../aligned-editor-container.rkt")
|
|
|
|
;; (printf "running tests for snip-lib.rkt\n")
|
|
|
|
;; snip-width: ((is-a?/c aligned-pasteboard<%>) (is-a?/c snip%) . -> . number?)
|
|
;; the width of a snip in the given pasteboard
|
|
(let* ([pb1 (new vertical-pasteboard%)]
|
|
[es1 (new editor-snip% [editor pb1])]
|
|
[pb2 (new vertical-pasteboard%)]
|
|
[frame (new frame% [label "l"] [width 10] [height 10])]
|
|
[canvas (new aligned-editor-canvas% [parent frame] [editor pb2])])
|
|
(send frame show #t)
|
|
(send pb2 insert es1)
|
|
(send es1 resize 20 20)
|
|
(sleep/yield 0.3)
|
|
(test equal? (snip-width #;pb2 es1) 20.0)
|
|
(send es1 resize 200 90)
|
|
(sleep/yield 0.3)
|
|
(test equal? (snip-width #;pb2 es1) 200.0)
|
|
(send frame show #f))
|
|
|
|
;; snip-height:
|
|
;; ((is-a?/c aligned-pasteboard<%>) (is-a?/c snip%) . -> . number?)
|
|
;; the height of a snip in the given pasteboard
|
|
(let* ([pb1 (new vertical-pasteboard%)]
|
|
[es1 (new editor-snip% [editor pb1])]
|
|
[pb2 (new vertical-pasteboard%)]
|
|
[frame (new frame% [label "l"] [width 10] [height 10])]
|
|
[canvas (new aligned-editor-canvas% [parent frame] [editor pb2])])
|
|
(send frame show #t)
|
|
(send pb2 insert es1)
|
|
(send es1 resize 20 20)
|
|
(sleep/yield 0.3)
|
|
(test equal? (snip-height #;pb2 es1) 20.0)
|
|
(send es1 resize 200 90)
|
|
(sleep/yield 0.3)
|
|
(test equal? (snip-height #;pb2 es1) 90.0)
|
|
(send frame show #f))
|
|
|
|
;; snip-min-width: ((is-a?/c snip%) . -> . number?)
|
|
;; the minimum width of the snip
|
|
|
|
;; snip-min-height: ((is-a?/c snip%) . -> . number?)
|
|
;; the minimum height of the snip
|
|
|
|
;; snip-parent: ((is-a?/c snip%) . -> . (is-a?/c editor<%>))
|
|
;; the pasteboard that contains the snip
|
|
(let* ([pb1 (new pasteboard%)]
|
|
[es1 (new editor-snip% [editor pb1])]
|
|
[pb2 (new pasteboard%)]
|
|
[frame (new frame% [label "l"] [width 10] [height 10])]
|
|
[canvas (new editor-canvas% [parent frame] [editor pb2])])
|
|
(send frame show #t)
|
|
(send pb2 insert es1)
|
|
(test equal? (snip-parent es1) pb2)
|
|
(send frame show #f))
|
|
|
|
(let* ([pb1 (new horizontal-pasteboard%)]
|
|
[pb2 (new horizontal-pasteboard%)]
|
|
[pb3 (new horizontal-pasteboard%)]
|
|
[pb4 (new horizontal-pasteboard%)]
|
|
[pb5 (new horizontal-pasteboard%)]
|
|
[es2 (new aligned-editor-snip% [editor pb2])]
|
|
[es3 (new aligned-editor-snip% [editor pb3])]
|
|
[es4 (new aligned-editor-snip% [editor pb4])]
|
|
[es5 (new aligned-editor-snip% [editor pb5])]
|
|
[frame (new frame% [label "l"] [width 10] [height 10])]
|
|
[canvas (new aligned-editor-canvas% [parent frame] [editor pb1])])
|
|
(send frame show #t)
|
|
(send pb1 insert es2)
|
|
(send pb2 insert es3)
|
|
(send pb3 insert es4)
|
|
(send pb4 insert es5)
|
|
(test equal? (snip-parent es2) pb1)
|
|
(test equal? (snip-parent es3) pb2)
|
|
(test equal? (snip-parent es4) pb3)
|
|
(test equal? (snip-parent es5) pb4)
|
|
(send frame show #f))
|
|
|
|
;; fold-snip: (lambda (b?) ((any? b? . -> . b?) b? (is-a?/c snip%) . -> . b?))
|
|
;; the application of f on all snips from snip to the end in a foldl
|
|
;; foldr mannor
|
|
(let* ([pb1 (new vertical-pasteboard%)]
|
|
[es1 (new editor-snip% [editor (new text%)])]
|
|
[es2 (new editor-snip% [editor (new text%)])]
|
|
[es3 (new editor-snip% [editor (new text%)])]
|
|
[es4 (new editor-snip% [editor (new text%)])]
|
|
[frame (new frame% [label "l"] [width 10] [height 10])]
|
|
[canvas (new aligned-editor-canvas% [parent frame] [editor pb1])])
|
|
(send frame show #t)
|
|
(send pb1 insert es1)
|
|
(send pb1 insert es2)
|
|
(send pb1 insert es3)
|
|
(send pb1 insert es4)
|
|
(send es1 resize 100 100)
|
|
(send es2 resize 100 100)
|
|
(send es3 resize 100 100)
|
|
(send es4 resize 100 100)
|
|
(test = (fold-snip (λ (snip total-height)
|
|
(+ (snip-height #;pb1 snip) total-height))
|
|
0 es1)
|
|
400)
|
|
(send frame show #f))
|
|
|
|
;; for-each-snip:
|
|
;; (((is-a?/c snip%) . -> . (void)) (is-a/c? snip%) . -> . (void))
|
|
;; applies the function to all the snips
|
|
(let* ([pb1 (new vertical-pasteboard%)]
|
|
[es1 (new editor-snip% [editor (new text%)])]
|
|
[es2 (new editor-snip% [editor (new text%)])]
|
|
[es3 (new editor-snip% [editor (new text%)])]
|
|
[es4 (new editor-snip% [editor (new text%)])]
|
|
[frame (new frame% [label "l"] [width 10] [height 10])]
|
|
[canvas (new aligned-editor-canvas% [parent frame] [editor pb1])]
|
|
[count 0])
|
|
(send frame show #t)
|
|
(send pb1 insert es1)
|
|
(send pb1 insert es2)
|
|
(send pb1 insert es3)
|
|
(send pb1 insert es4)
|
|
(for-each-snip (λ (snip) (set! count (add1 count))) es1)
|
|
(test = count 4)
|
|
(send frame show #f))
|
|
|
|
;; (printf "tests done\n")
|