… | |
… | |
4 | $loaded = 1; |
4 | $loaded = 1; |
5 | print "ok 1\n"; |
5 | print "ok 1\n"; |
6 | |
6 | |
7 | @h = (9,8,7,4,3,5,6,1,2); |
7 | @h = (9,8,7,4,3,5,6,1,2); |
8 | make_heap @h; |
8 | make_heap @h; |
9 | print "@h" eq "1 2 5 4 3 7 6 9 8" ? "ok 2\n" : "not ok 2\n"; |
9 | print "@h" eq "1 2 5 3 7 8 6 9 4" ? "ok 2\n" : "not ok 2 # @h\n"; |
10 | |
10 | |
11 | @g = map +(pop_heap @h), 1..9; |
11 | @g = map +(pop_heap @h), 1..9; |
12 | print "@g" eq "1 2 3 4 5 6 7 8 9" ? "ok 3\n" : "not ok 3\n"; |
12 | print "@g" eq "1 2 3 4 5 6 7 8 9" ? "ok 3\n" : "not ok 3 # @g\n"; |
13 | |
13 | |
14 | push_heap @i, 1,2,3,5,6,7,9,8,4; |
14 | push_heap @i, 1,2,3,5,6,7,9,8,4; |
15 | print "@i" eq "1 2 3 4 6 7 9 8 5" ? "ok 4\n" : "not ok 4\n"; |
15 | print "@i" eq "1 2 3 4 6 7 9 8 5" ? "ok 4\n" : "not ok 4 # @i\n"; |
16 | |
16 | |
17 | @g = map +(pop_heap @i), 1..9; |
17 | @g = map +(pop_heap @i), 1..9; |
18 | print "@g" eq "1 2 3 4 5 6 7 8 9" ? "ok 5\n" : "not ok 5\n"; |
18 | print "@g" eq "1 2 3 4 5 6 7 8 9" ? "ok 5\n" : "not ok 5 # @g\n"; |
19 | |
19 | |
20 | @h = (9,8,7,4,3,5,6,1,2); |
20 | @h = (9,8,7,4,3,5,6,1,2); |
21 | make_heap_cmp { $b <=> $a } @h; |
21 | make_heap_cmp { $b <=> $a } @h; |
22 | print "@h" eq "9 8 7 4 3 5 6 1 2" ? "ok 6\n" : "not ok 6\n"; |
22 | print "@h" eq "9 8 7 4 3 5 6 1 2" ? "ok 6\n" : "not ok 6 # @h\n"; |
23 | |
23 | |
24 | @g = map +(pop_heap_cmp { $b <=> $a } @h), 1..9; |
24 | @g = map +(pop_heap_cmp { $b <=> $a } @h), 1..9; |
25 | print "@g" eq "9 8 7 6 5 4 3 2 1" ? "ok 7\n" : "not ok 7\n"; |
25 | print "@g" eq "9 8 7 6 5 4 3 2 1" ? "ok 7\n" : "not ok 7 # @g\n"; |
26 | |
26 | |
27 | @h = (2,1,6,5,3,4,7,8,9); |
27 | @h = (2,1,6,5,3,4,7,8,9); |
28 | make_heap_cmp { $a <=> $b } @h; |
28 | make_heap_cmp { $a <=> $b } @h; |
29 | print "@h" eq "1 2 4 5 3 6 7 8 9" ? "ok 8\n" : "not ok 8\n"; |
29 | print "@h" eq "1 2 4 5 3 6 7 8 9" ? "ok 8\n" : "not ok 8 # @h\n"; |
30 | |
30 | |
31 | @h = ([4, "hi"], 3, [7], [9,5], [0]); |
31 | @h = ([4, "hi"], 3, [7], [9,5], [0]); |
32 | make_heap @h; |
32 | make_heap @h; |
33 | print $h[0][0] == 0 ? "ok 9\n" : "not ok 9\n"; |
33 | print $h[0][0] == 0 ? "ok 9\n" : "not ok 9\n"; |
34 | print $h[1] == 3 ? "ok 10\n" : "not ok 10\n"; |
34 | print $h[1] == 3 ? "ok 10\n" : "not ok 10\n"; |