13
0

Unit test all RegionEquivalence options

This commit is contained in:
Robin Gareus 2019-09-05 22:07:41 +02:00
parent 772444d769
commit db063a6eb8
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04

View File

@ -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);
}