?? textbtree.test
字號:
.t tag delete x .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 1.1 4.90 .t tag ranges x} {1.1 4.17}test btree-8.8 {tag addition and removal, weird ranges} { .t delete 1.0 100000.0 .t tag delete x .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 3.0 3.0 .t tag ranges x} {}test btree-9.1 {tag names} { setup .t tag names} {sel x y}test btree-9.2 {tag names} { setup .t tag add tag1 1.8 .t tag add tag2 1.8 .t tag add tag3 1.7 1.9 .t tag names 1.8} {x tag1 tag2 tag3}test btree-9.3 {lots of tag names} { setup .t insert 1.2 $bigText2 foreach i {tag1 foo ThisOne {x space} q r s t} { .t tag add $i 150.2 } foreach i {u tagA tagB tagC and more {$} \{} { .t tag add $i 150.1 150.3 } .t tag names 150.2} {tag1 foo ThisOne {x space} q r s t u tagA tagB tagC and more {$} \{}test btree-9.4 {lots of tag names} { setup .t insert 1.2 $bigText2 .t tag delete tag1 foo ThisOne more {x space} q r s t u .t tag delete tagA tagB tagC and {$} \{ more foreach i {tag1 foo ThisOne more {x space} q r s t} { .t tag add $i 150.2 } foreach i {foo ThisOne u tagA tagB tagC and more {$} \{} { .t tag add $i 150.4 } .t tag delete tag1 more q r tagA .t tag names 150.2} {foo ThisOne {x space} s t}proc msetup {} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t mark set m1 1.2 .t mark set l1 1.2 .t mark gravity l1 left .t mark set next 1.6 .t mark set x 1.6 .t mark set m2 2.0 .t mark set m3 2.100 .t tag add x 1.3 1.8}test btree-10.1 {basic mark facilities} { msetup list [lsort [.t mark names]] [.t index m1] [.t index m2] [.t index m3]} {{current insert l1 m1 m2 m3 next x} 1.2 2.0 2.11}test btree-10.2 {basic mark facilities} { msetup .t mark unset m2 lsort [.t mark names]} {current insert l1 m1 m3 next x}test btree-10.3 {basic mark facilities} { msetup .t mark set m2 1.8 list [lsort [.t mark names]] [.t index m1] [.t index m2] [.t index m3]} {{current insert l1 m1 m2 m3 next x} 1.2 1.8 2.11}test btree-11.1 {marks and inserts} { msetup .t insert 1.1 abcde list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.7 1.7 1.11 1.11 2.0 2.11}test btree-11.2 {marks and inserts} { msetup .t insert 1.2 abcde list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.7 1.11 1.11 2.0 2.11}test btree-11.3 {marks and inserts} { msetup .t insert 1.3 abcde list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 1.11 1.11 2.0 2.11}test btree-11.4 {marks and inserts} { msetup .t insert 1.1 ab\n\ncde list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {3.4 3.4 3.8 3.8 4.0 4.11}test btree-11.5 {marks and inserts} { msetup .t insert 1.4 ab\n\ncde list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 3.5 3.5 4.0 4.11}test btree-11.6 {marks and inserts} { msetup .t insert 1.7 ab\n\ncde list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 1.6 1.6 4.0 4.11}test btree-12.1 {marks and deletes} { msetup .t delete 1.3 1.5 list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 1.4 1.4 2.0 2.11}test btree-12.2 {marks and deletes} { msetup .t delete 1.3 1.8 list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 1.3 1.3 2.0 2.11}test btree-12.3 {marks and deletes} { msetup .t delete 1.2 1.8 list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 1.2 1.2 2.0 2.11}test btree-12.4 {marks and deletes} { msetup .t delete 1.1 1.8 list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.1 1.1 1.1 1.1 2.0 2.11}test btree-12.5 {marks and deletes} { msetup .t delete 1.5 3.1 list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 1.5 1.5 1.5 1.5}test btree-12.6 {marks and deletes} { msetup .t mark set m2 4.5 .t delete 1.5 4.1 list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.2 1.5 1.5 1.9 1.5}test btree-12.7 {marks and deletes} { msetup .t mark set m2 4.5 .t mark set m3 4.5 .t mark set m1 4.7 .t delete 1.5 4.1 list [.t index l1] [.t index m1] [.t index next] [.t index x] [.t index m2] [.t index m3]} {1.2 1.11 1.5 1.5 1.9 1.9}destroy .ttext .ttest btree-13.1 {tag searching} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag next x 2.2 2.1} {}test btree-13.2 {tag searching} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 2.2 2.4 .t tag next x 2.2 2.3} {2.2 2.4}test btree-13.3 {tag searching} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 2.2 2.4 .t tag next x 2.3 2.6} {}test btree-13.4 {tag searching} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 2.5 2.8 .t tag next x 2.1 2.6} {2.5 2.8}test btree-13.5 {tag searching} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 2.5 2.8 .t tag next x 2.1 2.5} {}test btree-13.6 {tag searching} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 2.1 2.4 .t tag next x 2.5 2.8} {}test btree-13.7 {tag searching} { .t delete 1.0 100000.0 .t insert 1.0 "Text for first line\nSecond line\n\nLast line of info" .t tag add x 2.5 2.8 .t tag next x 2.1 2.4} {}test btree-13.8 {tag searching} { setup .t insert 1.2 $bigText2 .t tag add x 190.3 191.2 .t tag next x 3.5} {190.3 191.2}test btree-14.1 {check tag presence} { setup .t insert 1.2 $bigText2 .t tag add x 3.5 3.7 .t tag add y 133.9 141.5 .t tag add z 1.5 180.2 .t tag add q 141.4 142.3 .t tag add x 130.2 145.1 .t tag add a 141.0 .t tag add b 4.3 .t tag add b 7.5 .t tag add b 140.3 for {set i 120} {$i < 160} {incr i} { .t tag add c $i.4 } foreach i {a1 a2 a3 a4 a5 a6 a7 a8 a9 10 a11 a12 a13} { .t tag add $i 122.2 } .t tag add x 141.3 .t tag names 141.1} {x y z}test btree-15.1 {rebalance with empty node} { catch {destroy .t} text .t .t debug 1 .t insert end "1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23" .t delete 6.0 12.0 .t get 1.0 end} "1\n2\n3\n4\n5\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n"proc setupBig {} { .t delete 1.0 end .t tag delete x y .t tag configure x -foreground blue .t tag configure y -underline true # Create a Btree with 2002 lines (2000 + already existing + phantom at end) # This generates a level 3 node with 9 children # Most level 2 nodes cover 216 lines and have 6 children, except the last # level 2 node covers 274 lines and has 7 children. # Most level 1 nodes cover 36 lines and have 6 children, except the # rightmost node has 58 lines and 9 children. # Level 2: 2002 = 8*216 + 274 # Level 1: 2002 = 54*36 + 58 # Level 0: 2002 = 332*6 + 10 for {set i 0} {$i < 2000} {incr i} { append x "Line $i abcd efgh ijkl\n" } .t insert insert $x .t debug 1}test btree-16.1 {add tag does not push root above level 0} { catch {destroy .t} text .t setupBig .t tag add x 1.1 1.10 .t tag add x 5.1 5.10 .t tag ranges x} {1.1 1.10 5.1 5.10}test btree-16.2 {add tag pushes root up to level 1 node} { catch {destroy .t} text .t .t debug 1 setupBig .t tag add x 1.1 1.10 .t tag add x 8.1 8.10 .t tag ranges x} {1.1 1.10 8.1 8.10}test btree-16.3 {add tag pushes root up to level 2 node} { .t tag remove x 1.0 end .t tag add x 8.1 9.10 .t tag add x 180.1 180.end .t tag ranges x} {8.1 9.10 180.1 180.23}test btree-16.4 {add tag pushes root up to level 3 node} { .t tag remove x 1.0 end .t tag add y 1.1 2000.0 .t tag add x 1.1 8.10 .t tag add x 180.end 217.0 list [.t tag ranges x] [.t tag ranges y]} {{1.1 8.10 180.23 217.0} {1.1 2000.0}}test btree-16.5 {add tag doesn't push root up} { .t tag remove x 1.0 end .t tag add x 1.1 8.10 .t tag add x 2000.0 2000.3 .t tag add x 180.end 217.0 .t tag ranges x} {1.1 8.10 180.23 217.0 2000.0 2000.3}test btree-16.6 {two node splits at once pushes root up} { .t delete 1.0 end for {set i 1} {$i < 10} {incr i} { .t insert end "Line $i\n" } .t tag add x 8.0 8.end .t tag add y 9.0 end set x {} for {} {$i < 50} {incr i} { append x "Line $i\n" } .t insert end $x y list [.t tag ranges x] [.t tag ranges y]} {{8.0 8.6} {9.0 51.0}}# The following find bugs in the SearchStart procedurestest btree-16.7 {Partial tag remove from before first range} { .t tag remove x 1.0 end .t tag add x 2.0 2.6 .t tag remove x 1.0 2.0 .t tag ranges x} {2.0 2.6}test btree-16.8 {Partial tag remove from before first range} { .t tag remove x 1.0 end .t tag add x 2.0 2.6 .t tag remove x 1.0 2.1 .t tag ranges x} {2.1 2.6}test btree-16.9 {Partial tag remove from before first range} { .t tag remove x 1.0 end .t tag add x 2.0 2.6 .t tag remove x 1.0 2.3 .t tag ranges x} {2.3 2.6}test btree-16.10 {Partial tag remove from before first range} { .t tag remove x 1.0 end .t tag add x 1.0 2.6 .t tag remove x 1.0 2.5 .t tag ranges x} {2.5 2.6}test btree-16.11 {StartSearchBack boundary case} { .t tag remove x 1.0 end .t tag add x 1.3 1.4 .t tag prevr x 2.0 1.4} {}test btree-16.12 {StartSearchBack boundary case} { .t tag remove x 1.0 end .t tag add x 1.3 1.4 .t tag prevr x 2.0 1.3} {1.3 1.4}test btree-16.13 {StartSearchBack boundary case} { .t tag remove x 1.0 end .t tag add x 1.0 1.4 .t tag prevr x 1.3} {1.0 1.4}test btree-17.1 {remove tag does not push root down} { catch {destroy .t} text .t .t debug 0 setupBig .t tag add x 1.1 5.10 .t tag remove x 3.1 5.end .t tag ranges x} {1.1 3.1}test btree-17.2 {remove tag pushes root from level 1 to level 0} { .t tag remove x 1.0 end .t tag add x 1.1 8.10 .t tag remove x 3.1 end .t tag ranges x} {1.1 3.1}test btree-17.3 {remove tag pushes root from level 2 to level 1} { .t tag remove x 1.0 end .t tag add x 1.1 180.10 .t tag remove x 35.1 end .t tag ranges x} {1.1 35.1}test btree-17.4 {remove tag doesn't change level 2} { .t tag remove x 1.0 end .t tag add x 1.1 180.10 .t tag remove x 35.1 180.0 .t tag ranges x} {1.1 35.1 180.0 180.10}test btree-17.5 {remove tag pushes root from level 3 to level 0} { .t tag remove x 1.0 end .t tag add x 1.1 1.10 .t tag add x 2000.1 2000.10 .t tag remove x 1.0 2000.0 .t tag ranges x} {2000.1 2000.10}test btree-17.6 {text deletion pushes root from level 3 to level 0} { .t tag remove x 1.0 end .t tag add x 1.1 1.10 .t tag add x 2000.1 2000.10 .t delete 1.0 "1000.0 lineend +1 char" .t tag ranges x} {1000.1 1000.10}catch {destroy .t}text .ttest btree-18.1 {tag search back, no tag} { .t insert 1.0 "Line 1 abcd efgh ijkl\n" .t tag prev x 1.1 1.1} {}test btree-18.2 {tag search back, start at existing range} { .t tag remove x 1.0 end .t tag add x 1.1 1.4 .t tag add x 1.8 1.11 .t tag add x 1.16 .t tag prev x 1.1} {}test btree-18.3 {tag search back, end at existing range} { .t tag remove x 1.0 end .t tag add x 1.1 1.4 .t tag add x 1.8 1.11 .t tag add x 1.16 .t tag prev x 1.3 1.1} {1.1 1.4}test btree-18.4 {tag search back, start within range} { .t tag remove x 1.0 end .t tag add x 1.1 1.4 .t tag add x 1.8 1.11 .t tag add x 1.16 .t tag prev x 1.10 1.0} {1.8 1.11}test btree-18.5 {tag search back, start at end of range} { .t tag remove x 1.0 end .t tag add x 1.1 1.4 .t tag add x 1.8 1.11 .t tag add x 1.16 list [.t tag prev x 1.4 1.0] [.t tag prev x 1.11 1.0]} {{1.1 1.4} {1.8 1.11}}test btree-18.6 {tag search back, start beyond range, same level 0 node} { .t tag remove x 1.0 end .t tag add x 1.1 1.4 .t tag add x 1.8 1.11 .t tag add x 1.16 .t tag prev x 3.0} {1.16 1.17}test btree-18.7 {tag search back, outside any range} { .t tag remove x 1.0 end .t tag add x 1.1 1.4 .t tag add x 1.16 .t tag prev x 1.8 1.5} {}test btree-18.8 {tag search back, start at start of node boundary} { setupBig .t tag remove x 1.0 end .t tag add x 2.5 2.8 .t tag prev x 19.0} {2.5 2.8}test btree-18.9 {tag search back, large complex btree spans} { .t tag remove x 1.0 end .t tag add x 1.3 1.end .t tag add x 200.0 220.0 .t tag add x 500.0 520.0 list [.t tag prev x end] [.t tag prev x 433.0]} {{500.0 520.0} {200.0 220.0}}destroy .t
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -