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;
|
using namespace std;
|
||||||
|
|
||||||
void
|
void
|
||||||
SequenceTest::createTest (void)
|
SequenceTest::createTest ()
|
||||||
{
|
{
|
||||||
CPPUNIT_ASSERT_EQUAL(size_t(0), seq->sysexes().size());
|
CPPUNIT_ASSERT_EQUAL(size_t(0), seq->sysexes().size());
|
||||||
CPPUNIT_ASSERT_EQUAL(size_t(0), seq->notes().size());
|
CPPUNIT_ASSERT_EQUAL(size_t(0), seq->notes().size());
|
||||||
|
|
@ -15,7 +15,7 @@ SequenceTest::createTest (void)
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
SequenceTest::preserveEventOrderingTest (void)
|
SequenceTest::preserveEventOrderingTest ()
|
||||||
{
|
{
|
||||||
vector< boost::shared_ptr< Event<Time> > > inserted_events;
|
vector< boost::shared_ptr< Event<Time> > > inserted_events;
|
||||||
|
|
||||||
|
|
@ -62,3 +62,32 @@ SequenceTest::preserveEventOrderingTest (void)
|
||||||
CPPUNIT_ASSERT_EQUAL(size_t(12), test_notes.size());
|
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_SUITE (SequenceTest);
|
||||||
CPPUNIT_TEST (createTest);
|
CPPUNIT_TEST (createTest);
|
||||||
CPPUNIT_TEST (preserveEventOrderingTest);
|
CPPUNIT_TEST (preserveEventOrderingTest);
|
||||||
|
CPPUNIT_TEST (iteratorSeekTest);
|
||||||
CPPUNIT_TEST_SUITE_END ();
|
CPPUNIT_TEST_SUITE_END ();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef double Time;
|
typedef double Time;
|
||||||
typedef std::vector<boost::shared_ptr<Note<Time> > > Notes;
|
typedef std::vector<boost::shared_ptr<Note<Time> > > Notes;
|
||||||
|
|
||||||
void setUp (void) {
|
void setUp () {
|
||||||
type_map = new DummyTypeMap();
|
type_map = new DummyTypeMap();
|
||||||
assert(type_map);
|
assert(type_map);
|
||||||
seq = new MySequence<Time>(*type_map);
|
seq = new MySequence<Time>(*type_map);
|
||||||
|
|
@ -115,14 +116,15 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void tearDown (void) {
|
void tearDown () {
|
||||||
test_notes.clear();
|
test_notes.clear();
|
||||||
delete seq;
|
delete seq;
|
||||||
delete type_map;
|
delete type_map;
|
||||||
}
|
}
|
||||||
|
|
||||||
void createTest (void);
|
void createTest ();
|
||||||
void preserveEventOrderingTest (void);
|
void preserveEventOrderingTest ();
|
||||||
|
void iteratorSeekTest ();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DummyTypeMap* type_map;
|
DummyTypeMap* type_map;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue