Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
@@ -0,0 +1,92 @@
|
||||
/**
|
||||
* @RDE_HEADER@
|
||||
* AvaTimelineTest
|
||||
* $Id$
|
||||
* $HeadURL$
|
||||
* $Author$
|
||||
* Created by Christian Fröbel, NLSE, 2018-03-28
|
||||
*/
|
||||
|
||||
#include "ava_timeline_test.h"
|
||||
#include <AudioVideoManagement/ava_types.h>
|
||||
#include <initializer_list>
|
||||
#include <utility>
|
||||
#include <algorithm>
|
||||
|
||||
using namespace AudioVideoManagement;
|
||||
|
||||
namespace
|
||||
{
|
||||
|
||||
/**
|
||||
* Small helper so that we can easily craeate a AvaTimeline from a list of int-pairs.
|
||||
*/
|
||||
AvaTimeline makeTimeline(std::initializer_list<std::pair<int, int>> v)
|
||||
{
|
||||
AvaTimeline timeline;
|
||||
std::for_each(v.begin(), v.end(), [&timeline] (const std::pair<int, int> &p) { timeline.append({AvaTimePoint(AvaDuration{p.first}), AvaTimePoint(AvaDuration{p.second})}); });
|
||||
return timeline;
|
||||
}
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
void AvaTimelineTest::testMergeEmpty()
|
||||
{
|
||||
const AvaTimeline timeline1 = makeTimeline({ {1, 2}, {3, 4} });
|
||||
AvaTimeline timeline2 = timeline1;
|
||||
AvaTimeline empty;
|
||||
timeline2.merge(empty);
|
||||
QCOMPARE(timeline2, timeline1);
|
||||
|
||||
empty.merge(timeline1);
|
||||
QCOMPARE(empty, timeline1);
|
||||
}
|
||||
|
||||
void AvaTimelineTest::testMergeSelf()
|
||||
{
|
||||
const AvaTimeline timeline1 = makeTimeline({ {1, 2}, {3, 4} });
|
||||
AvaTimeline timeline2 = timeline1;
|
||||
timeline2.merge(timeline2);
|
||||
QCOMPARE(timeline2, timeline1);
|
||||
}
|
||||
|
||||
void AvaTimelineTest::testMergeDisjunct()
|
||||
{
|
||||
AvaTimeline timeline1 = makeTimeline({ {1, 2} });
|
||||
AvaTimeline timeline2 = makeTimeline({ {3, 4} });
|
||||
|
||||
timeline1.merge(timeline2);
|
||||
AvaTimeline expected = makeTimeline({ {1, 2}, {3, 4}});
|
||||
QCOMPARE(timeline1, expected);
|
||||
}
|
||||
|
||||
void AvaTimelineTest::testMergeWithin()
|
||||
{
|
||||
AvaTimeline timeline1 = makeTimeline({ {1, 4} });
|
||||
AvaTimeline timeline2 = makeTimeline({ {2, 3} });
|
||||
|
||||
timeline1.merge(timeline2);
|
||||
AvaTimeline expected = makeTimeline({ {1, 4} });
|
||||
QCOMPARE(timeline1, expected);
|
||||
}
|
||||
|
||||
void AvaTimelineTest::testMergeOverlap()
|
||||
{
|
||||
AvaTimeline timeline1 = makeTimeline({ {1, 3} });
|
||||
AvaTimeline timeline2 = makeTimeline({ {2, 4} });
|
||||
|
||||
timeline1.merge(timeline2);
|
||||
AvaTimeline expected = makeTimeline({ {1, 4} });
|
||||
QCOMPARE(timeline1, expected);
|
||||
}
|
||||
|
||||
void AvaTimelineTest::testMergeEdgeOverlap()
|
||||
{
|
||||
AvaTimeline timeline1 = makeTimeline({ {1, 2} });
|
||||
AvaTimeline timeline2 = makeTimeline({ {2, 3} });
|
||||
|
||||
timeline1.merge(timeline2);
|
||||
AvaTimeline expected = makeTimeline({ {1, 3} });
|
||||
QCOMPARE(timeline1, expected);
|
||||
}
|
||||
Reference in new issue
Block a user