Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey@blender.org>2020-11-20 19:11:00 +0300
committerSergey Sharybin <sergey@blender.org>2020-11-23 11:23:19 +0300
commit401612b8e148c3533f61a170c5189cf3d50e7bc1 (patch)
tree41682a84ededb3a77bedbf236e0f4aeda01d2383
parent1e0ff6b723d218dd2ba884edad9d46bc99acf75e (diff)
Tracking: Cover markers access with basic tests
Just a beginning of tests coverage, related on the planned upcoming development.
-rw-r--r--source/blender/blenkernel/CMakeLists.txt1
-rw-r--r--source/blender/blenkernel/intern/tracking_test.cc64
2 files changed, 65 insertions, 0 deletions
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index 40b2d62baac..c89a45b2a43 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -720,6 +720,7 @@ if(WITH_GTESTS)
intern/armature_test.cc
intern/fcurve_test.cc
intern/lattice_deform_test.cc
+ intern/tracking_test.cc
)
set(TEST_INC
../editors/include
diff --git a/source/blender/blenkernel/intern/tracking_test.cc b/source/blender/blenkernel/intern/tracking_test.cc
new file mode 100644
index 00000000000..6afcf6872eb
--- /dev/null
+++ b/source/blender/blenkernel/intern/tracking_test.cc
@@ -0,0 +1,64 @@
+/* Apache License, Version 2.0 */
+
+#include "testing/testing.h"
+
+#include "DNA_tracking_types.h"
+
+#include "BKE_tracking.h"
+
+namespace {
+
+class TrackingTest : public ::testing::Test {
+ protected:
+ MovieTrackingMarker *addMarkerToTrack(MovieTrackingTrack *track, int frame_number)
+ {
+ MovieTrackingMarker marker = {{0.0f}};
+ marker.framenr = frame_number;
+ return BKE_tracking_marker_insert(track, &marker);
+ }
+};
+
+} // namespace
+
+TEST_F(TrackingTest, BKE_tracking_marker_get)
+{
+ MovieTrackingTrack track = {nullptr};
+
+ addMarkerToTrack(&track, 1);
+ addMarkerToTrack(&track, 10);
+
+ {
+ const MovieTrackingMarker *marker = BKE_tracking_marker_get(&track, 1);
+ EXPECT_NE(marker, nullptr);
+ EXPECT_EQ(marker->framenr, 1);
+ }
+
+ {
+ const MovieTrackingMarker *marker = BKE_tracking_marker_get(&track, 5);
+ EXPECT_NE(marker, nullptr);
+ EXPECT_EQ(marker->framenr, 1);
+ }
+
+ BKE_tracking_track_free(&track);
+}
+
+TEST_F(TrackingTest, BKE_tracking_marker_get_exact)
+{
+ MovieTrackingTrack track = {nullptr};
+
+ addMarkerToTrack(&track, 1);
+ addMarkerToTrack(&track, 10);
+
+ {
+ const MovieTrackingMarker *marker = BKE_tracking_marker_get_exact(&track, 1);
+ EXPECT_NE(marker, nullptr);
+ EXPECT_EQ(marker->framenr, 1);
+ }
+
+ {
+ const MovieTrackingMarker *marker = BKE_tracking_marker_get_exact(&track, 5);
+ EXPECT_EQ(marker, nullptr);
+ }
+
+ BKE_tracking_track_free(&track);
+}