pqueue_001.phpt 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. --TEST--
  2. SPL: SplPriorityQueue: std operations and extract flags
  3. --FILE--
  4. <?php
  5. $pq = new SplPriorityQueue();
  6. // errors
  7. try {
  8. $pq->extract();
  9. } catch (RuntimeException $e) {
  10. echo "Exception: ".$e->getMessage()."\n";
  11. }
  12. $pq->insert("a", 1);
  13. $pq->insert("b", 2);
  14. $pq->insert("c", 0);
  15. foreach ($pq as $k=>$v) {
  16. echo "$k=>".print_r($v, 1)."\n";
  17. }
  18. echo "EXTR_BOTH\n";
  19. $pq1 = new SplPriorityQueue();
  20. $pq1->setExtractFlags(SplPriorityQueue::EXTR_BOTH);
  21. $pq1->insert("a", 1);
  22. $pq1->insert("b", 2);
  23. $pq1->insert("c", 0);
  24. foreach ($pq1 as $k=>$v) {
  25. echo "$k=>".print_r($v, 1)."\n";
  26. }
  27. echo "EXTR_DATA\n";
  28. $pq2 = new SplPriorityQueue();
  29. $pq2->setExtractFlags(SplPriorityQueue::EXTR_DATA);
  30. $pq2->insert("a", 1);
  31. $pq2->insert("b", 2);
  32. $pq2->insert("c", 0);
  33. foreach ($pq2 as $k=>$v) {
  34. echo "$k=>".print_r($v, 1)."\n";
  35. }
  36. echo "EXTR_PRIORITY\n";
  37. $pq3 = new SplPriorityQueue();
  38. $pq3->setExtractFlags(SplPriorityQueue::EXTR_PRIORITY);
  39. $pq3->insert("a", 1);
  40. $pq3->insert("b", 2);
  41. $pq3->insert("c", 0);
  42. foreach ($pq3 as $k=>$v) {
  43. echo "$k=>".print_r($v, 1)."\n";
  44. }
  45. ?>
  46. --EXPECT--
  47. Exception: Can't extract from an empty heap
  48. 2=>b
  49. 1=>a
  50. 0=>c
  51. EXTR_BOTH
  52. 2=>Array
  53. (
  54. [data] => b
  55. [priority] => 2
  56. )
  57. 1=>Array
  58. (
  59. [data] => a
  60. [priority] => 1
  61. )
  62. 0=>Array
  63. (
  64. [data] => c
  65. [priority] => 0
  66. )
  67. EXTR_DATA
  68. 2=>b
  69. 1=>a
  70. 0=>c
  71. EXTR_PRIORITY
  72. 2=>2
  73. 1=>1
  74. 0=>0