summaryrefslogtreecommitdiff
path: root/libs/ardour/test
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-09-05 22:07:41 +0200
committerRobin Gareus <robin@gareus.org>2019-09-05 22:07:41 +0200
commitdb063a6eb80f4e23d686e63b2a98fca05dd1ae01 (patch)
tree39351fe913ae13744b3af192dea7c7e854eb3de6 /libs/ardour/test
parent772444d769f02550667e6974cc8467d913dda99e (diff)
Unit test all RegionEquivalence options
Diffstat (limited to 'libs/ardour/test')
-rw-r--r--libs/ardour/test/playlist_equivalent_regions_test.cc31
1 files changed, 30 insertions, 1 deletions
diff --git a/libs/ardour/test/playlist_equivalent_regions_test.cc b/libs/ardour/test/playlist_equivalent_regions_test.cc
index f3b7e1b12e..e7d7117414 100644
--- a/libs/ardour/test/playlist_equivalent_regions_test.cc
+++ b/libs/ardour/test/playlist_equivalent_regions_test.cc
@@ -19,6 +19,7 @@
#include "ardour/playlist.h"
#include "ardour/playlist_factory.h"
+#include "ardour/rc_configuration.h"
#include "ardour/region.h"
#include "playlist_equivalent_regions_test.h"
@@ -86,11 +87,39 @@ PlaylistEquivalentRegionsTest::multiLayerTest ()
_playlist_b->add_region (_r[2], 42);
_playlist_b->add_region (_r[3], 42);
- /* Look for equivalents to _r[0] on _playlist_b */
+ RegionEquivalence re = Config->get_region_equivalence();
+
+ /* Look for equivalents to _r[0] on _playlist_b
+ * using different equivalence modes */
+
+ Config->set_region_equivalence (Exact);
vector<boost::shared_ptr<Region> > e;
_playlist_b->get_equivalent_regions (_r[0], e);
+ /* That should be _r[2] and _r[3] */
+ CPPUNIT_ASSERT_EQUAL (size_t (2), e.size ());
+ CPPUNIT_ASSERT ((e.front() == _r[2] && e.back() == _r[3]) || (e.front() == _r[3] && e.back() == _r[2]));
+
+ Config->set_region_equivalence (Enclosed);
+ e.clear ();
+ _playlist_b->get_equivalent_regions (_r[0], e);
+ /* That should be _r[2] and _r[3] */
+ CPPUNIT_ASSERT_EQUAL (size_t (2), e.size ());
+ CPPUNIT_ASSERT ((e.front() == _r[2] && e.back() == _r[3]) || (e.front() == _r[3] && e.back() == _r[2]));
+ Config->set_region_equivalence (Overlap);
+ e.clear ();
+ _playlist_b->get_equivalent_regions (_r[0], e);
/* That should be _r[2] and _r[3] */
CPPUNIT_ASSERT_EQUAL (size_t (2), e.size ());
CPPUNIT_ASSERT ((e.front() == _r[2] && e.back() == _r[3]) || (e.front() == _r[3] && e.back() == _r[2]));
+
+ Config->set_region_equivalence (LayerTime);
+ e.clear ();
+ _playlist_b->get_equivalent_regions (_r[0], e);
+ /* That should be _r[2] */
+ CPPUNIT_ASSERT_EQUAL (size_t (1), e.size ());
+ CPPUNIT_ASSERT (e.front() == _r[2]);
+
+ /* restore original setting */
+ Config->set_region_equivalence (re);
}