mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-09 16:24:57 +01:00
Add unit test for Sequence iterator seeking.
git-svn-id: svn://localhost/ardour2/branches/3.0@5801 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
5c1dccaca5
commit
0a9b982620
2 changed files with 37 additions and 6 deletions
|
|
@ -6,7 +6,7 @@ CPPUNIT_TEST_SUITE_REGISTRATION(SequenceTest);
|
|||
using namespace std;
|
||||
|
||||
void
|
||||
SequenceTest::createTest (void)
|
||||
SequenceTest::createTest ()
|
||||
{
|
||||
CPPUNIT_ASSERT_EQUAL(size_t(0), seq->sysexes().size());
|
||||
CPPUNIT_ASSERT_EQUAL(size_t(0), seq->notes().size());
|
||||
|
|
@ -15,7 +15,7 @@ SequenceTest::createTest (void)
|
|||
|
||||
|
||||
void
|
||||
SequenceTest::preserveEventOrderingTest (void)
|
||||
SequenceTest::preserveEventOrderingTest ()
|
||||
{
|
||||
vector< boost::shared_ptr< Event<Time> > > inserted_events;
|
||||
|
||||
|
|
@ -62,3 +62,32 @@ SequenceTest::preserveEventOrderingTest (void)
|
|||
CPPUNIT_ASSERT_EQUAL(size_t(12), test_notes.size());
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
SequenceTest::iteratorSeekTest ()
|
||||
{
|
||||
size_t num_notes = 0;
|
||||
|
||||
seq->clear();
|
||||
|
||||
for (Notes::const_iterator i = test_notes.begin(); i != test_notes.end(); ++i) {
|
||||
if ((*i)->time() >= 600) {
|
||||
seq->notes().insert(*i);
|
||||
}
|
||||
}
|
||||
|
||||
bool on = true;
|
||||
for (Sequence<Time>::const_iterator i = seq->begin(600); i != seq->end(); ++i) {
|
||||
if (on) {
|
||||
CPPUNIT_ASSERT(((MIDIEvent<Time>&)*i).is_note_on());
|
||||
CPPUNIT_ASSERT_EQUAL(i->time(), Time((num_notes + 6) * 100));
|
||||
++num_notes;
|
||||
on = false;
|
||||
} else {
|
||||
CPPUNIT_ASSERT(((MIDIEvent<Time>&)*i).is_note_off());
|
||||
on = true;
|
||||
}
|
||||
}
|
||||
|
||||
CPPUNIT_ASSERT_EQUAL(num_notes, size_t(6));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,13 +97,14 @@ class SequenceTest : public CppUnit::TestFixture
|
|||
CPPUNIT_TEST_SUITE (SequenceTest);
|
||||
CPPUNIT_TEST (createTest);
|
||||
CPPUNIT_TEST (preserveEventOrderingTest);
|
||||
CPPUNIT_TEST (iteratorSeekTest);
|
||||
CPPUNIT_TEST_SUITE_END ();
|
||||
|
||||
public:
|
||||
typedef double Time;
|
||||
typedef std::vector<boost::shared_ptr<Note<Time> > > Notes;
|
||||
|
||||
void setUp (void) {
|
||||
void setUp () {
|
||||
type_map = new DummyTypeMap();
|
||||
assert(type_map);
|
||||
seq = new MySequence<Time>(*type_map);
|
||||
|
|
@ -115,14 +116,15 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
void tearDown (void) {
|
||||
void tearDown () {
|
||||
test_notes.clear();
|
||||
delete seq;
|
||||
delete type_map;
|
||||
}
|
||||
|
||||
void createTest (void);
|
||||
void preserveEventOrderingTest (void);
|
||||
void createTest ();
|
||||
void preserveEventOrderingTest ();
|
||||
void iteratorSeekTest ();
|
||||
|
||||
private:
|
||||
DummyTypeMap* type_map;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue