File indexing completed on 2024-05-26 04:59:40
0001 /* 0002 SPDX-FileCopyrightText: 2007-2009 Sergio Pistone <sergio_pistone@yahoo.com.ar> 0003 SPDX-FileCopyrightText: 2010-2022 Mladen Milinkovic <max@smoothware.net> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "rangelisttest.h" 0009 #include "core/rangelist.h" 0010 0011 #include <QTest> // krazy:exclude=c++/includes 0012 0013 using namespace SubtitleComposer; 0014 0015 void 0016 RangeListTest::testConstructors() 0017 { 0018 RangeList ranges; 0019 QVERIFY(ranges.isEmpty() && ranges.rangesCount() == 0); 0020 0021 ranges << Range(1, 2); 0022 QVERIFY(ranges.firstIndex() == 1 && ranges.lastIndex() == 2 && ranges.indexesCount() == 2); 0023 0024 RangeList ranges2(Range(1, 2)); 0025 QVERIFY(ranges == ranges2); 0026 0027 ranges2 = ranges; 0028 QVERIFY(ranges == ranges2); 0029 0030 ranges << Range(7, 9); 0031 QVERIFY(ranges.firstIndex() == 1 && ranges.lastIndex() == 9 && ranges.indexesCount() == 5); 0032 0033 RangeList ranges3(ranges); 0034 QVERIFY(ranges == ranges3); 0035 0036 ranges3 = ranges; 0037 QVERIFY(ranges == ranges3); 0038 0039 RangeList complementRanges = ranges.complement(); 0040 QVERIFY(complementRanges.firstIndex() == 0); 0041 QVERIFY(complementRanges.lastIndex() == Range::MaxIndex); 0042 0043 RangeList::ConstIterator complementRangesIt = complementRanges.begin(); 0044 QVERIFY(*(complementRangesIt++) == Range(0, 0)); 0045 QVERIFY(*(complementRangesIt++) == Range(3, 6)); 0046 QVERIFY(*(complementRangesIt++) == Range(10, Range::MaxIndex)); 0047 } 0048 0049 void 0050 RangeListTest::testJoinAndTrim() 0051 { 0052 RangeList ranges; 0053 0054 ranges << Range(1, 4); 0055 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 4); 0056 0057 ranges << Range(3, 5); 0058 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 5); 0059 0060 ranges << Range(7, 7); 0061 QVERIFY(ranges.rangesCount() == 2 && ranges.indexesCount() == 6); 0062 0063 ranges << Range(13, 16); 0064 QVERIFY(ranges.rangesCount() == 3 && ranges.indexesCount() == 10); 0065 0066 ranges << Range(6, 15); 0067 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 16); 0068 0069 ranges.trimToRange(Range(0, 17)); 0070 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 16); 0071 0072 ranges.trimToRange(Range(0, 16)); 0073 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 16); 0074 0075 ranges.trimToRange(Range(0, 15)); 0076 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 15); 0077 0078 ranges.trimToRange(Range(0, 5)); 0079 QVERIFY(ranges.rangesCount() == 1 && ranges.indexesCount() == 5); 0080 } 0081 0082 QTEST_GUILESS_MAIN(RangeListTest);