home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / languages / tcl / tk3.3b1 / tests / oldpack.test < prev    next >
Encoding:
Text File  |  1993-07-02  |  18.8 KB  |  520 lines

  1. # This file is a Tcl script to test out the old syntax of Tk's
  2. # "pack" command (before release 3.3).  It is organized in the
  3. # standard fashion for Tcl tests.
  4. #
  5. # Copyright (c) 1991-1993 The Regents of the University of California.
  6. # All rights reserved.
  7. #
  8. # Permission is hereby granted, without written agreement and without
  9. # license or royalty fees, to use, copy, modify, and distribute this
  10. # software and its documentation for any purpose, provided that the
  11. # above copyright notice and the following two paragraphs appear in
  12. # all copies of this software.
  13. #
  14. # IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
  15. # DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT
  16. # OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
  17. # CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  18. #
  19. # THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
  20. # INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
  21. # AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
  22. # ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO
  23. # PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
  24. #
  25. # $Header: /user6/ouster/wish/tests/RCS/oldpack.test,v 1.3 93/07/02 11:10:14 ouster Exp $ (Berkeley)
  26.  
  27. if {[string compare test [info procs test]] == 1} then \
  28.   {source defs}
  29.  
  30. # First, test a single window packed in various ways in a parent
  31.  
  32. catch {destroy .pack}
  33. frame .pack
  34. place .pack -width 100 -height 100
  35. frame .pack.red -width 10 -height 20
  36. label .pack.red.l -text R -bd 2 -relief raised
  37. place .pack.red.l -relwidth 1.0 -relheight 1.0
  38. frame .pack.green -width 30 -height 40
  39. label .pack.green.l -text G -bd 2 -relief raised
  40. place .pack.green.l -relwidth 1.0 -relheight 1.0
  41. frame .pack.blue -width 40 -height 40
  42. label .pack.blue.l -text B -bd 2 -relief raised
  43. place .pack.blue.l -relwidth 1.0 -relheight 1.0
  44. frame .pack.purple -width 80 -height 20
  45. label .pack.purple.l -text P -bd 2 -relief raised
  46. place .pack.purple.l -relwidth 1.0 -relheight 1.0
  47.  
  48. test pack-1.1 {basic positioning} {
  49.     pack ap .pack .pack.red top
  50.     update
  51.     winfo geometry .pack.red
  52. } 10x20+45+0
  53. test pack-1.2 {basic positioning} {
  54.     pack append .pack .pack.red bottom
  55.     update
  56.     winfo geometry .pack.red
  57. } 10x20+45+80
  58. test pack-1.3 {basic positioning} {
  59.     pack append .pack .pack.red left
  60.     update
  61.     winfo geometry .pack.red
  62. } 10x20+0+40
  63. test pack-1.4 {basic positioning} {
  64.     pack append .pack .pack.red right
  65.     update
  66.     winfo geometry .pack.red
  67. } 10x20+90+40
  68.  
  69. # Try adding padding around the window and make sure that the
  70. # window gets a larger frame.
  71.  
  72. test pack-2.1 {padding} {
  73.     pack append .pack .pack.red {t padx 20}
  74.     update
  75.     winfo geometry .pack.red
  76. } 10x20+45+0
  77. test pack-2.2 {padding} {
  78.     pack append .pack .pack.red {top pady 20}
  79.     update
  80.     winfo geometry .pack.red
  81. } 10x20+45+10
  82. test pack-2.3 {padding} {
  83.     pack append .pack .pack.red {l padx 20}
  84.     update
  85.     winfo geometry .pack.red
  86. } 10x20+10+40
  87. test pack-2.4 {padding} {
  88.     pack append .pack .pack.red {left pady 20}
  89.     update
  90.     winfo geometry .pack.red
  91. } 10x20+0+40
  92.  
  93. # Position the window at different positions in its frame to
  94. # make sure they all work.  Try two differenet frame locations,
  95. # to make sure that frame offsets are being added in correctly.
  96.  
  97. test pack-3.1 {framing} {
  98.     pack append .pack .pack.red {b padx 20 pady 30}
  99.     update
  100.     winfo geometry .pack.red
  101. } 10x20+45+65
  102. test pack-3.2 {framing} {
  103.     pack append .pack .pack.red {bottom padx 20 pady 30 fr n}
  104.     update
  105.     winfo geometry .pack.red
  106. } 10x20+45+50
  107. test pack-3.3 {framing} {
  108.     pack append .pack .pack.red {bottom padx 20 pady 30 frame ne}
  109.     update
  110.     winfo geometry .pack.red
  111. } 10x20+90+50
  112. test pack-3.4 {framing} {
  113.     pack append .pack .pack.red {bottom padx 20 pady 30 frame e}
  114.     update
  115.     winfo geometry .pack.red
  116. } 10x20+90+65
  117. test pack-3.5 {framing} {
  118.     pack append .pack .pack.red {bottom padx 20 pady 30 frame se}
  119.     update
  120.     winfo geometry .pack.red
  121. } 10x20+90+80
  122. test pack-3.6 {framing} {
  123.     pack append .pack .pack.red {bottom padx 20 pady 30 frame s}
  124.     update
  125.     winfo geometry .pack.red
  126. } 10x20+45+80
  127. test pack-3.7 {framing} {
  128.     pack append .pack .pack.red {bottom padx 20 pady 30 frame sw}
  129.     update
  130.     winfo geometry .pack.red
  131. } 10x20+0+80
  132. test pack-3.8 {framing} {
  133.     pack append .pack .pack.red {bottom padx 20 pady 30 frame w}
  134.     update
  135.     winfo geometry .pack.red
  136. } 10x20+0+65
  137. test pack-3.9 {framing} {
  138.     pack append .pack .pack.red {bottom padx 20 pady 30 frame nw}
  139.     update
  140.     winfo geometry .pack.red
  141. } 10x20+0+50
  142. test pack-3.10 {framing} {
  143.     pack append .pack .pack.red {bottom padx 20 pady 30 frame c}
  144.     update
  145.     winfo geometry .pack.red
  146. } 10x20+45+65
  147. test pack-3.11 {framing} {
  148.     pack append .pack .pack.red {r padx 20 pady 30}
  149.     update
  150.     winfo geometry .pack.red
  151. } 10x20+80+40
  152. test pack-3.12 {framing} {
  153.     pack append .pack .pack.red {right padx 20 pady 30 frame n}
  154.     update
  155.     winfo geometry .pack.red
  156. } 10x20+80+0
  157. test pack-3.13 {framing} {
  158.     pack append .pack .pack.red {right padx 20 pady 30 frame ne}
  159.     update
  160.     winfo geometry .pack.red
  161. } 10x20+90+0
  162. test pack-3.14 {framing} {
  163.     pack append .pack .pack.red {right padx 20 pady 30 frame e}
  164.     update
  165.     winfo geometry .pack.red
  166. } 10x20+90+40
  167. test pack-3.15 {framing} {
  168.     pack append .pack .pack.red {right padx 20 pady 30 frame se}
  169.     update
  170.     winfo geometry .pack.red
  171. } 10x20+90+80
  172. test pack-3.16 {framing} {
  173.     pack append .pack .pack.red {right padx 20 pady 30 frame s}
  174.     update
  175.     winfo geometry .pack.red
  176. } 10x20+80+80
  177. test pack-3.17 {framing} {
  178.     pack append .pack .pack.red {right padx 20 pady 30 frame sw}
  179.     update
  180.     winfo geometry .pack.red
  181. } 10x20+70+80
  182. test pack-3.18 {framing} {
  183.     pack append .pack .pack.red {right padx 20 pady 30 frame w}
  184.     update
  185.     winfo geometry .pack.red
  186. } 10x20+70+40
  187. test pack-3.19 {framing} {
  188.     pack append .pack .pack.red {right padx 20 pady 30 frame nw}
  189.     update
  190.     winfo geometry .pack.red
  191. } 10x20+70+0
  192. test pack-3.20 {framing} {
  193.     pack append .pack .pack.red {right padx 20 pady 30 frame center}
  194.     update
  195.     winfo geometry .pack.red
  196. } 10x20+80+40
  197.  
  198. # Try out various filling combinations in a couple of different
  199. # frame locations.
  200.  
  201. test pack-4.1 {filling} {
  202.     pack append .pack .pack.red {bottom padx 20 pady 30 fillx}
  203.     update
  204.     winfo geometry .pack.red
  205. } 100x20+0+65
  206. test pack-4.2 {filling} {
  207.     pack append .pack .pack.red {bottom padx 20 pady 30 filly}
  208.     update
  209.     winfo geometry .pack.red
  210. } 10x50+45+50
  211. test pack-4.3 {filling} {
  212.     pack append .pack .pack.red {bottom padx 20 pady 30 fill}
  213.     update
  214.     winfo geometry .pack.red
  215. } 100x50+0+50
  216. test pack-4.4 {filling} {
  217.     pack append .pack .pack.red {right padx 20 pady 30 fillx}
  218.     update
  219.     winfo geometry .pack.red
  220. } 30x20+70+40
  221. test pack-4.5 {filling} {
  222.     pack append .pack .pack.red {right padx 20 pady 30 filly}
  223.     update
  224.     winfo geometry .pack.red
  225. } 10x100+80+0
  226. test pack-4.6 {filling} {
  227.     pack append .pack .pack.red {right padx 20 pady 30 fill}
  228.     update
  229.     winfo geometry .pack.red
  230. } 30x100+70+0
  231.  
  232. # Multiple windows:  make sure that space is properly subtracted
  233. # from the cavity as windows are positioned inwards from all
  234. # different sides.  Also make sure that windows get unmapped if
  235. # there isn't enough space for them.
  236.  
  237. pack append .pack .pack.red top .pack.green top .pack.blue top \
  238.     .pack.purple top
  239. update
  240. test pack-5.1 {multiple windows} {winfo geometry .pack.red} 10x20+45+0
  241. test pack-5.2 {multiple windows} {winfo geometry .pack.green} 30x40+35+20
  242. test pack-5.3 {multiple windows} {winfo geometry .pack.blue} 40x40+30+60
  243. test pack-5.4 {multiple windows} {winfo ismapped .pack.purple} 0
  244. pack b .pack.blue .pack.purple top
  245. update
  246. test pack-5.6 {multiple windows} {winfo ismapped .pack.purple} 1
  247. test pack-5.7 {multiple windows} {winfo geometry .pack.purple} 80x20+10+60
  248. test pack-5.8 {multiple windows} {winfo geometry .pack.blue} 40x20+30+80
  249. pack after .pack.blue .pack.red top
  250. update
  251. test pack-5.9 {multiple windows} {winfo geometry .pack.green} 30x40+35+0
  252. test pack-5.10 {multiple windows} {winfo geometry .pack.purple} 80x20+10+40
  253. test pack-5.11 {multiple windows} {winfo geometry .pack.blue} 40x40+30+60
  254. test pack-5.12 {multiple windows} {winfo ismapped .pack.red} 0
  255. pack before .pack.green .pack.red right .pack.blue left
  256. update
  257. test pack-5.12 {multiple windows} {winfo ismapped .pack.red} 1
  258. test pack-5.13 {multiple windows} {winfo geometry .pack.red} 10x20+90+40
  259. test pack-5.14 {multiple windows} {winfo geometry .pack.blue} 40x40+0+30
  260. test pack-5.15 {multiple windows} {winfo geometry .pack.green} 30x40+50+0
  261. test pack-5.16 {multiple windows} {winfo geometry .pack.purple} 50x20+40+40
  262. pack append .pack .pack.purple left .pack.green bottom .pack.red bottom \
  263.     .pack.blue bottom
  264. update
  265. test pack-5.17 {multiple windows} {winfo geometry .pack.purple} 80x20+0+40
  266. test pack-5.18 {multiple windows} {winfo geometry .pack.green} 20x40+80+60
  267. test pack-5.19 {multiple windows} {winfo geometry .pack.red} 10x20+85+40
  268. test pack-5.20 {multiple windows} {winfo geometry .pack.blue} 20x40+80+0
  269. pack after .pack.blue .pack.blue top .pack.red right .pack.green right \
  270.     .pack.purple right
  271. update
  272. test pack-5.21 {multiple windows} {winfo geometry .pack.blue} 40x40+30+0
  273. test pack-5.22 {multiple windows} {winfo geometry .pack.red} 10x20+90+60
  274. test pack-5.23 {multiple windows} {winfo geometry .pack.green} 30x40+60+50
  275. test pack-5.24 {multiple windows} {winfo geometry .pack.purple} 60x20+0+60
  276. pack after .pack.blue .pack.red left .pack.green left .pack.purple left
  277. update
  278. test pack-5.25 {multiple windows} {winfo geometry .pack.blue} 40x40+30+0
  279. test pack-5.26 {multiple windows} {winfo geometry .pack.red} 10x20+0+60
  280. test pack-5.27 {multiple windows} {winfo geometry .pack.green} 30x40+10+50
  281. test pack-5.28 {multiple windows} {winfo geometry .pack.purple} 60x20+40+60
  282. pack append .pack .pack.purple left .pack.green left .pack.blue left \
  283.     .pack.red left
  284. update
  285. test pack-5.29 {multiple windows} {winfo geometry .pack.purple} 80x20+0+40
  286. test pack-5.30 {multiple windows} {winfo geometry .pack.green} 20x40+80+30
  287. test pack-5.31 {multiple windows} {winfo ismapped .pack.blue} 0
  288. test pack-5.32 {multiple windows} {winfo ismapped .pack.red} 0
  289.  
  290.  
  291. # Test the ability of the packer to propagate geometry information
  292. # to its parent.  Make sure it computes the parent's needs both in
  293. # the direction of packing (width for "left" and "right" windows,
  294. # for example), and perpendicular to the pack direction (height for
  295. # "left" and "right" windows).
  296.  
  297. pack append .pack .pack.red top .pack.green top .pack.blue top \
  298.     .pack.purple top
  299. update
  300. test pack-6.1 {geometry propagation} {winfo reqwidth .pack} 80
  301. test pack-6.2 {geometry propagation} {winfo reqheight .pack} 120
  302. destroy .pack.purple
  303. update
  304. test pack-6.3 {geometry propagation} {winfo reqwidth .pack} 40
  305. test pack-6.4 {geometry propagation} {winfo reqheight .pack} 100
  306. frame .pack.purple -geometry 80x20 -bg purple
  307. label .pack.purple.l -text P -bd 2 -relief raised
  308. place .pack.purple.l -relwidth 1.0 -relheight 1.0
  309. pack append .pack .pack.red left .pack.green right .pack.blue bottom \
  310.     .pack.purple top
  311. update
  312. test pack-6.5 {geometry propagation} {winfo reqwidth .pack} 120
  313. test pack-6.6 {geometry propagation} {winfo reqheight .pack} 60
  314. pack append .pack .pack.purple top .pack.green top .pack.blue left \
  315.     .pack.red left
  316. update
  317. test pack-6.7 {geometry propagation} {winfo reqwidth .pack} 80
  318. test pack-6.8 {geometry propagation} {winfo reqheight .pack} 100
  319.  
  320. # Test the "expand" option, and make sure space is evenly divided
  321. # when several windows request expansion.
  322.  
  323. pack append .pack .pack.purple top .pack.green {left e} \
  324.     .pack.blue {left expand} .pack.red {left expand}
  325. update
  326. test pack-7.1 {multiple expanded windows} {
  327.     pack append .pack .pack.purple top .pack.green {left e} \
  328.         .pack.blue {left expand} .pack.red {left expand}
  329.     update
  330.     list [winfo geometry .pack.green] [winfo geometry .pack.blue] \
  331.         [winfo geometry .pack.red]
  332. } {30x40+3+40 40x40+39+40 10x20+86+50}
  333. test pack-7.2 {multiple expanded windows} {
  334.     pack append .pack .pack.green left .pack.purple {bottom expand} \
  335.         .pack.blue {bottom expand} .pack.red {bottom expand}
  336.     update
  337.     list [winfo geometry .pack.purple] [winfo geometry .pack.blue] \
  338.         [winfo geometry .pack.red]
  339. } {70x20+30+77 40x40+45+30 10x20+60+3}
  340. test pack-7.3 {multiple expanded windows} {
  341.     foreach i [winfo child .pack] {
  342.     pack unpack $i
  343.     }
  344.     pack append .pack .pack.green {left e fill} .pack.red {left expand fill} \
  345.         .pack.blue {top fill}
  346.     update
  347.     list [winfo geometry .pack.green] [winfo geometry .pack.red] \
  348.         [winfo geometry .pack.blue]
  349. } {40x100+0+0 20x100+40+0 40x40+60+0}
  350. test pack-7.4 {multiple expanded windows} {
  351.     foreach i [winfo child .pack] {
  352.     pack unpack $i
  353.     }
  354.     pack append .pack .pack.red {top expand} .pack.purple {top expand} \
  355.         .pack.blue {right fill}
  356.     update
  357.     list [winfo geometry .pack.red] [winfo geometry .pack.purple] \
  358.         [winfo geometry .pack.blue]
  359. } {10x20+45+5 80x20+10+35 40x40+60+60}
  360. test pack-7.5 {multiple expanded windows} {
  361.     foreach i [winfo child .pack] {
  362.     pack unpack $i
  363.     }
  364.     pack append .pack .pack.green {right frame s} .pack.red {top expand}
  365.     update
  366.     list [winfo geometry .pack.green] [winfo geometry .pack.red]
  367. } {30x40+70+60 10x20+30+40}
  368. test pack-7.6 {multiple expanded windows} {
  369.     foreach i [winfo child .pack] {
  370.     pack unpack $i
  371.     }
  372.     pack append .pack .pack.purple {bottom frame e} .pack.red {right expand}
  373.     update
  374.     list [winfo geometry .pack.purple] [winfo geometry .pack.red]
  375. } {80x20+20+80 10x20+45+30}
  376.  
  377. # Need more bizarre tests with combinations of expanded windows and
  378. # windows in opposing directions!  Also, include padding in expanded
  379. # (and unexpanded) windows.
  380.  
  381. # Syntax errors on pack commands
  382.  
  383. test pack-8.1 {syntax errors} {
  384.     set msg ""
  385.     set result [catch {pack} msg]
  386.     concat $result $msg
  387. } {1 wrong # args: should be "pack option arg ?arg ...?"}
  388. test pack-8.2 {syntax errors} {
  389.     set msg ""
  390.     set result [catch {pack append} msg]
  391.     concat $result $msg
  392. } {1 wrong # args: should be "pack option arg ?arg ...?"}
  393. test pack-8.3 {syntax errors} {
  394.     set msg ""
  395.     set result [catch {pack gorp foo} msg]
  396.     concat $result $msg
  397. } {1 bad option "gorp":  must be configure, forget, info, newinfo, propagate, or slaves}
  398. test pack-8.4 {syntax errors} {
  399.     set msg ""
  400.     set result [catch {pack a .pack} msg]
  401.     concat $result $msg
  402. } {1 bad option "a":  must be configure, forget, info, newinfo, propagate, or slaves}
  403. test pack-8.5 {syntax errors} {
  404.     set msg ""
  405.     set result [catch {pack after foobar} msg]
  406.     concat $result $msg
  407. } {1 bad window path name "foobar"}
  408. test pack-8.6 {syntax errors} {
  409.     frame .pack.yellow -bg yellow
  410.     set msg ""
  411.     set result [catch {pack after .pack.yellow} msg]
  412.     destroy .pack.yellow
  413.     concat $result $msg
  414. } {1 window ".pack.yellow" isn't packed}
  415. test pack-8.7 {syntax errors} {
  416.     set msg ""
  417.     set result [catch {pack append foobar} msg]
  418.     concat $result $msg
  419. } {1 bad window path name "foobar"}
  420. test pack-8.8 {syntax errors} {
  421.     set msg ""
  422.     set result [catch {pack before foobar} msg]
  423.     concat $result $msg
  424. } {1 bad window path name "foobar"}
  425. test pack-8.9 {syntax errors} {
  426.     frame .pack.yellow -bg yellow
  427.     set msg ""
  428.     set result [catch {pack before .pack.yellow} msg]
  429.     destroy .pack.yellow
  430.     concat $result $msg
  431. } {1 window ".pack.yellow" isn't packed}
  432. test pack-8.10 {syntax errors} {
  433.     set msg ""
  434.     set result [catch {pack info .pack help} msg]
  435.     concat $result $msg
  436. } {1 wrong # args: should be "pack info window"}
  437. test pack-8.11 {syntax errors} {
  438.     set msg ""
  439.     set result [catch {pack info foobar} msg]
  440.     concat $result $msg
  441. } {1 bad window path name "foobar"}
  442. test pack-8.12 {syntax errors} {
  443.     set msg ""
  444.     set result [catch {pack append .pack .pack.blue} msg]
  445.     concat $result $msg
  446. } {1 wrong # args: window ".pack.blue" should be followed by options}
  447. test pack-8.13 {syntax errors} {
  448.     set msg ""
  449.     set result [catch {pack append . .pack.blue top} msg]
  450.     concat $result $msg
  451. } {1 can't pack .pack.blue inside .}
  452. test pack-8.14 {syntax errors} {
  453.     set msg ""
  454.     set result [catch {pack append .pack .pack.blue f} msg]
  455.     concat $result $msg
  456. } {1 bad option "f":  should be top, bottom, left, right, expand, fill, fillx, filly, padx, pady, or frame}
  457. test pack-8.15 {syntax errors} {
  458.     set msg ""
  459.     set result [catch {pack append .pack .pack.blue pad} msg]
  460.     concat $result $msg
  461. } {1 bad option "pad":  should be top, bottom, left, right, expand, fill, fillx, filly, padx, pady, or frame}
  462. test pack-8.16 {syntax errors} {
  463.     set msg ""
  464.     set result [catch {pack append .pack .pack.blue {frame south}} msg]
  465.     concat $result $msg
  466. } {1 bad anchor position "south": must be n, ne, e, se, s, sw, w, nw, or center}
  467. test pack-8.17 {syntax errors} {
  468.     set msg ""
  469.     set result [catch {pack append .pack .pack.blue {padx -2}} msg]
  470.     concat $result $msg
  471. } {1 bad pad value "-2":  must be positive screen distance}
  472. test pack-8.18 {syntax errors} {
  473.     set msg ""
  474.     set result [catch {pack append .pack .pack.blue {padx}} msg]
  475.     concat $result $msg
  476. } {1 wrong # args: "padx" option must be followed by screen distance}
  477. test pack-8.19 {syntax errors} {
  478.     set msg ""
  479.     set result [catch {pack append .pack .pack.blue {pady -2}} msg]
  480.     concat $result $msg
  481. } {1 bad pad value "-2":  must be positive screen distance}
  482. test pack-8.20 {syntax errors} {
  483.     set msg ""
  484.     set result [catch {pack append .pack .pack.blue {pady}} msg]
  485.     concat $result $msg
  486. } {1 wrong # args: "pady" option must be followed by screen distance}
  487. test pack-8.21 {syntax errors} {
  488.     set msg ""
  489.     set result [catch {pack append .pack .pack.blue "\{abc"} msg]
  490.     concat $result $msg
  491. } {1 unmatched open brace in list}
  492. test pack-8.22 {syntax errors} {
  493.     set msg ""
  494.     set result [catch {pack append .pack .pack.blue frame} msg]
  495.     concat $result $msg
  496. } {1 wrong # args: "frame" option must be followed by anchor point}
  497.  
  498. # Test "pack info" command output.
  499.  
  500. test pack-9.1 {information output} {
  501.     pack append .pack .pack.blue {top fillx frame n} \
  502.     .pack.red {bottom filly frame s} .pack.green {left fill frame w} \
  503.     .pack.purple {right expand frame e}
  504.     pack info .pack
  505. } {.pack.blue {top frame n fillx} .pack.red {bottom frame s filly} .pack.green {left frame w fill} .pack.purple {right frame e expand}}
  506. test pack-9.2 {information output} {
  507.     pack append .pack .pack.blue {padx 10 frame nw} \
  508.     .pack.red {pady 20 frame ne} .pack.green {frame se} \
  509.     .pack.purple {frame sw}
  510.     pack info .pack
  511. } {.pack.blue {top frame nw padx 10} .pack.red {top frame ne pady 20} .pack.green {top frame se} .pack.purple {top frame sw}}
  512. test pack-9.3 {information output} {
  513.     pack append .pack .pack.blue {frame center} .pack.red {frame center} \
  514.     .pack.green {frame c} .pack.purple {frame c}
  515.     pack info .pack
  516. } {.pack.blue {top frame center} .pack.red {top frame center} .pack.green {top frame center} .pack.purple {top frame center}}
  517.  
  518. catch {destroy .pack}
  519. concat {}
  520.