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);