[Bf-blender-cvs] [8409a729457] temp-inplace-priority-queue: test many priority changes

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


Commit: 8409a729457cb5be53b6ab314f58ea175fe6849d
Author: Jacques Lucke
Date:   Wed Dec 16 12:00:45 2020 +0100
Branches: temp-inplace-priority-queue
https://developer.blender.org/rB8409a729457cb5be53b6ab314f58ea175fe6849d

test many priority changes

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

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

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

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 4ccc5b9425d..7b593a8e86c 100644
--- a/source/blender/blenlib/tests/BLI_inplace_priority_queue_test.cc
+++ b/source/blender/blenlib/tests/BLI_inplace_priority_queue_test.cc
@@ -64,6 +64,34 @@ TEST(inplace_priority_queue, PopAll)
   }
 }
 
+TEST(inplace_priority_queue, ManyPriorityChanges)
+{
+  RandomNumberGenerator rng;
+  Vector<int> values;
+  const int amount = 1000;
+  for (int i = 0; i < amount; i++) {
+    values.append(rng.get_int32() % amount);
+  }
+
+  InplacePriorityQueue<int> priority_queue(values);
+  std::cout << priority_queue.to_dot() << "\n";
+
+  for (int i = 0; i < amount; i++) {
+    const int index = rng.get_int32() % amount;
+    const int new_priority = rng.get_int32() % amount;
+    values[index] = new_priority;
+    priority_queue.priority_changed(index);
+  }
+  std::cout << priority_queue.to_dot() << "\n";
+
+  int last_value = amount;
+  while (!priority_queue.is_empty()) {
+    const int value = priority_queue.pop();
+    EXPECT_LE(value, last_value);
+    last_value = value;
+  }
+}
+
 TEST(inplace_priority_queue, IndicesAccess)
 {
   Array<int> values = {4, 6, 2, 4, 8, 1, 10, 2, 5};



More information about the Bf-blender-cvs mailing list