1 /*
2 SPDX-FileCopyrightText: 2007-2009 Sergio Pistone <sergio_pistone@yahoo.com.ar>
3 SPDX-FileCopyrightText: 2010-2018 Mladen Milinkovic <max@smoothware.net>
4
5 SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8 #include "rangelisttest.h"
9 #include "core/rangelist.h"
10
11 #include <QTest> // krazy:exclude=c++/includes
12
13 using namespace SubtitleComposer;
14
15 void
testConstructors()16 RangeListTest::testConstructors()
17 {
18 RangeList ranges;
19 QVERIFY(ranges.isEmpty() && ranges.rangesCount() == 0);
20
21 ranges << Range(1, 2);
22 QVERIFY(ranges.firstIndex() == 1 && ranges.lastIndex() == 2 && ranges.indexesCount() == 2);
23
24 RangeList ranges2(Range(1, 2));
25 QVERIFY(ranges == ranges2);
26
27 ranges2 = ranges;
28 QVERIFY(ranges == ranges2);
29
30 ranges << Range(7, 9);
31 QVERIFY(ranges.firstIndex() == 1 && ranges.lastIndex() == 9 && ranges.indexesCount() == 5);
32
33 RangeList ranges3(ranges);
34 QVERIFY(ranges == ranges3);
35
36 ranges3 = ranges;
37 QVERIFY(ranges == ranges3);
38
39 RangeList complementRanges = ranges.complement();
40 QVERIFY(complementRanges.firstIndex() == 0);
41 QVERIFY(complementRanges.lastIndex() == Range::MaxIndex);
42
43 RangeList::ConstIterator complementRangesIt = complementRanges.begin();
44 QVERIFY(*(complementRangesIt++) == Range(0, 0));
45 QVERIFY(*(complementRangesIt++) == Range(3, 6));
46 QVERIFY(*(complementRangesIt++) == Range(10, Range::MaxIndex));
47 }
48
49 void
testJoinAndTrim()50 RangeListTest::testJoinAndTrim()
51 {
52 RangeList ranges;
53
54 ranges << Range(1, 4);
55 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 4);
56
57 ranges << Range(3, 5);
58 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 5);
59
60 ranges << Range(7, 7);
61 QVERIFY(ranges.rangesCount() == 2 && ranges.indexesCount() == 6);
62
63 ranges << Range(13, 16);
64 QVERIFY(ranges.rangesCount() == 3 && ranges.indexesCount() == 10);
65
66 ranges << Range(6, 15);
67 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 16);
68
69 ranges.trimToRange(Range(0, 17));
70 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 16);
71
72 ranges.trimToRange(Range(0, 16));
73 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 16);
74
75 ranges.trimToRange(Range(0, 15));
76 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 15);
77
78 ranges.trimToRange(Range(0, 5));
79 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 5);
80 }
81
82 QTEST_GUILESS_MAIN(RangeListTest);
83