#include "RangeTest.hpp" #include "evoral/Range.hpp" CPPUNIT_TEST_SUITE_REGISTRATION (RangeTest); using namespace Evoral; void RangeTest::coalesceTest () { RangeList fred; fred.add (Range (2, 4)); fred.add (Range (5, 6)); fred.add (Range (6, 8)); RangeList::List jim = fred.get (); RangeList::List::iterator i = jim.begin (); CPPUNIT_ASSERT_EQUAL (2, i->from); CPPUNIT_ASSERT_EQUAL (4, i->to); ++i; CPPUNIT_ASSERT_EQUAL (5, i->from); CPPUNIT_ASSERT_EQUAL (8, i->to); } void RangeTest::subtractTest1 () { Range fred (0, 10); RangeList jim; jim.add (Range (2, 4)); jim.add (Range (7, 8)); RangeList sheila = subtract (fred, jim); RangeList::List s = sheila.get (); CPPUNIT_ASSERT_EQUAL (size_t (3), s.size ()); RangeList::List::iterator i = s.begin (); CPPUNIT_ASSERT_EQUAL (0, i->from); CPPUNIT_ASSERT_EQUAL (1, i->to); ++i; CPPUNIT_ASSERT_EQUAL (4, i->from); CPPUNIT_ASSERT_EQUAL (6, i->to); ++i; CPPUNIT_ASSERT_EQUAL (8, i->from); CPPUNIT_ASSERT_EQUAL (10, i->to); } void RangeTest::subtractTest2 () { Range fred (0, 10); RangeList jim; jim.add (Range (12, 19)); RangeList sheila = subtract (fred, jim); RangeList::List s = sheila.get (); CPPUNIT_ASSERT_EQUAL (size_t (1), s.size ()); RangeList::List::iterator i = s.begin (); CPPUNIT_ASSERT_EQUAL (0, i->from); CPPUNIT_ASSERT_EQUAL (10, i->to); } void RangeTest::subtractTest3 () { Range fred (0, 10); RangeList jim; jim.add (Range (0, 12)); RangeList sheila = subtract (fred, jim); RangeList::List s = sheila.get (); CPPUNIT_ASSERT_EQUAL (size_t (0), s.size ()); }