[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