[Bf-blender-cvs] [9175eedf402] temp-inplace-priority-queue: add all indices

Jacques Lucke noreply at git.blender.org
Wed Dec 16 12:01:03 CET 2020


Commit: 9175eedf4029c9f55639ab0a5e499b79e4290a8f
Author: Jacques Lucke
Date:   Wed Dec 16 11:53:01 2020 +0100
Branches: temp-inplace-priority-queue
https://developer.blender.org/rB9175eedf4029c9f55639ab0a5e499b79e4290a8f

add all indices

===================================================================

M	source/blender/blenlib/BLI_inplace_priority_queue.hh
M	source/blender/blenlib/tests/BLI_inplace_priority_queue_test.cc

===================================================================

diff --git a/source/blender/blenlib/BLI_inplace_priority_queue.hh b/source/blender/blenlib/BLI_inplace_priority_queue.hh
index 6147f7d0889..bd5a49c3b65 100644
--- a/source/blender/blenlib/BLI_inplace_priority_queue.hh
+++ b/source/blender/blenlib/BLI_inplace_priority_queue.hh
@@ -200,6 +200,14 @@ class InplacePriorityQueue {
     return heap_to_orig_.as_span().drop_front(heap_size_);
   }
 
+  /**
+   * Returns the concatenation of the active and inactive indices.
+   */
+  Span<int64_t> all_indices() const
+  {
+    return heap_to_orig_;
+  }
+
   /**
    * Return the heap used by the priority queue as dot graph string.
    * This exists for debugging purposes.
diff --git a/source/blender/blenlib/tests/BLI_inplace_priority_queue_test.cc b/source/blender/blenlib/tests/BLI_inplace_priority_queue_test.cc
index 2abef992d09..4ccc5b9425d 100644
--- a/source/blender/blenlib/tests/BLI_inplace_priority_queue_test.cc
+++ b/source/blender/blenlib/tests/BLI_inplace_priority_queue_test.cc
@@ -71,14 +71,17 @@ TEST(inplace_priority_queue, IndicesAccess)
 
   EXPECT_EQ(priority_queue.active_indices().size(), 9);
   EXPECT_EQ(priority_queue.inactive_indices().size(), 0);
+  EXPECT_EQ(priority_queue.all_indices().size(), 9);
   EXPECT_EQ(priority_queue.pop(), 10);
   EXPECT_EQ(priority_queue.active_indices().size(), 8);
   EXPECT_EQ(priority_queue.inactive_indices().size(), 1);
   EXPECT_EQ(values[priority_queue.inactive_indices()[0]], 10);
+  EXPECT_EQ(priority_queue.all_indices().size(), 9);
   EXPECT_EQ(priority_queue.pop(), 8);
   EXPECT_EQ(priority_queue.inactive_indices().size(), 2);
   EXPECT_EQ(values[priority_queue.inactive_indices()[0]], 8);
   EXPECT_EQ(values[priority_queue.inactive_indices()[1]], 10);
+  EXPECT_EQ(priority_queue.all_indices().size(), 9);
 }
 
 }  // namespace blender::tests



More information about the Bf-blender-cvs mailing list