File indexing completed on 2024-04-28 05:52:32
0001 /* 0002 This file is part of the Okteta Core library, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2008 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "arraychangemetricstest.hpp" 0010 0011 // test object 0012 #include <arraychangemetrics.hpp> 0013 // Qt 0014 #include <QTest> 0015 0016 namespace Okteta { 0017 0018 // local variables 0019 static constexpr Address Offset = 15; 0020 0021 static constexpr Size LengthDiff = 5; 0022 static constexpr Size InsertLength = 15; 0023 static constexpr Size SmallerRemoveLength = InsertLength - LengthDiff; 0024 0025 static constexpr Size FirstLength = 15; 0026 static constexpr Address SecondOffset = Offset + FirstLength; 0027 static constexpr Size SecondLength = 10; 0028 static constexpr Address SecondEnd = SecondOffset + SecondLength - 1; 0029 0030 void ArrayChangeMetricsTest::testConstructorAsReplacement() 0031 { 0032 ArrayChangeMetrics change = ArrayChangeMetrics::asReplacement(Offset, SmallerRemoveLength, InsertLength); 0033 0034 QVERIFY(change.isValid()); 0035 QCOMPARE(change.offset(), Offset); 0036 QCOMPARE(change.removeLength(), SmallerRemoveLength); 0037 QCOMPARE(change.insertLength(), InsertLength); 0038 QCOMPARE(change.lengthChange(), LengthDiff); 0039 } 0040 0041 void ArrayChangeMetricsTest::testConstructorAsSwapping() 0042 { 0043 ArrayChangeMetrics change = ArrayChangeMetrics::asSwapping(Offset, SecondOffset, SecondLength); 0044 0045 QVERIFY(change.isValid()); 0046 QCOMPARE(change.offset(), Offset); 0047 QCOMPARE(change.firstLength(), FirstLength); 0048 QCOMPARE(change.secondStart(), SecondOffset); 0049 QCOMPARE(change.secondEnd(), SecondEnd); 0050 QCOMPARE(change.secondLength(), SecondLength); 0051 } 0052 0053 void ArrayChangeMetricsTest::testRevert() 0054 { 0055 ArrayChangeMetrics replacement = ArrayChangeMetrics::asReplacement(Offset, SmallerRemoveLength, InsertLength); 0056 replacement.revert(); 0057 0058 QVERIFY(replacement.isValid()); 0059 QCOMPARE(replacement.offset(), Offset); 0060 QCOMPARE(replacement.removeLength(), InsertLength); 0061 QCOMPARE(replacement.insertLength(), SmallerRemoveLength); 0062 QCOMPARE(replacement.lengthChange(), -LengthDiff); 0063 0064 replacement.revert(); 0065 0066 QVERIFY(replacement.isValid()); 0067 QCOMPARE(replacement.offset(), Offset); 0068 QCOMPARE(replacement.removeLength(), SmallerRemoveLength); 0069 QCOMPARE(replacement.insertLength(), InsertLength); 0070 QCOMPARE(replacement.lengthChange(), LengthDiff); 0071 0072 ArrayChangeMetrics swapping = ArrayChangeMetrics::asSwapping(Offset, SecondOffset, SecondLength); 0073 swapping.revert(); 0074 0075 QVERIFY(swapping.isValid()); 0076 QCOMPARE(swapping.offset(), Offset); 0077 QCOMPARE(swapping.firstLength(), SecondLength); 0078 QCOMPARE(swapping.secondStart(), Offset + SecondLength); 0079 QCOMPARE(swapping.secondEnd(), SecondEnd); 0080 QCOMPARE(swapping.secondLength(), FirstLength); 0081 0082 swapping.revert(); 0083 0084 QVERIFY(swapping.isValid()); 0085 QCOMPARE(swapping.offset(), Offset); 0086 QCOMPARE(swapping.firstLength(), FirstLength); 0087 QCOMPARE(swapping.secondStart(), SecondOffset); 0088 QCOMPARE(swapping.secondEnd(), SecondEnd); 0089 QCOMPARE(swapping.secondLength(), SecondLength); 0090 } 0091 0092 } 0093 0094 QTEST_GUILESS_MAIN(Okteta::ArrayChangeMetricsTest) 0095 0096 #include "moc_arraychangemetricstest.cpp"