diff options
author | Robin Gareus <robin@gareus.org> | 2019-09-05 22:07:41 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-09-05 22:07:41 +0200 |
commit | db063a6eb80f4e23d686e63b2a98fca05dd1ae01 (patch) | |
tree | 39351fe913ae13744b3af192dea7c7e854eb3de6 /libs/ardour/test | |
parent | 772444d769f02550667e6974cc8467d913dda99e (diff) |
Unit test all RegionEquivalence options
Diffstat (limited to 'libs/ardour/test')
-rw-r--r-- | libs/ardour/test/playlist_equivalent_regions_test.cc | 31 |
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); } |