File indexing completed on 2024-04-28 05:52:39

0001 /*
0002     This file is part of the Okteta Gui 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 "bytearraytablelayouttest.hpp"
0010 
0011 // test object
0012 #include <bytearraytablelayout.hpp>
0013 // Qt
0014 #include <QTest>
0015 
0016 namespace Okteta {
0017 
0018 // local variables
0019 static constexpr Size NoOfBytesPerLine = 8;
0020 static constexpr Address StartOffset = 22;
0021 static constexpr Address FirstLineOffset = 10;
0022 static constexpr Address RelativeStartOffset = StartOffset - FirstLineOffset;
0023 static constexpr Address ByteArrayOffset = 9;
0024 static constexpr Size Length = 250;
0025 static constexpr Address FinalOffset = (StartOffset + Length - 1);
0026 static constexpr Address RelativeFinalOffset = FinalOffset - FirstLineOffset;
0027 
0028 static constexpr Line StartLine = RelativeStartOffset / NoOfBytesPerLine;
0029 static constexpr LinePosition StartLinePosition = RelativeStartOffset % NoOfBytesPerLine;
0030 static constexpr Coord StartCoord(StartLinePosition, StartLine);
0031 
0032 static constexpr Line FinalLine =  RelativeFinalOffset / NoOfBytesPerLine;
0033 static constexpr LinePosition FinalLinePosition = RelativeFinalOffset % NoOfBytesPerLine;
0034 static constexpr Coord FinalCoord(FinalLinePosition, FinalLine);
0035 
0036 static constexpr LineSize NoOfLinesPerPage = 5;
0037 
0038 
0039 void ByteArrayTableLayoutTest::testConstructor()
0040 {
0041     ByteArrayTableLayout layout(NoOfBytesPerLine, FirstLineOffset, StartOffset, ByteArrayOffset, Length);
0042 
0043     QCOMPARE(layout.noOfBytesPerLine(), NoOfBytesPerLine);
0044     QCOMPARE(layout.startOffset(), StartOffset);
0045     QCOMPARE(layout.byteArrayOffset(), ByteArrayOffset);
0046     QCOMPARE(layout.length(), Length);
0047     QCOMPARE(layout.startLine(), StartLine);
0048     QCOMPARE(layout.firstStartLinePosition(), StartLinePosition);
0049     QCOMPARE(layout.startCoord(), StartCoord);
0050     QCOMPARE(layout.finalLine(), FinalLine);
0051     QCOMPARE(layout.lastFinalLinePosition(), FinalLinePosition);
0052     QCOMPARE(layout.finalCoord(), FinalCoord);
0053     QCOMPARE(layout.noOfLines(), FinalLine + 1);
0054     QCOMPARE(layout.noOfLinesPerPage(), 1);
0055 }
0056 
0057 void ByteArrayTableLayoutTest::testSetStartOffset()
0058 {
0059     ByteArrayTableLayout layout(NoOfBytesPerLine, FirstLineOffset, 0, ByteArrayOffset, Length);
0060 
0061     layout.setStartOffset(StartOffset);
0062     QCOMPARE(layout.noOfBytesPerLine(), NoOfBytesPerLine);
0063     QCOMPARE(layout.startOffset(), StartOffset);
0064     QCOMPARE(layout.byteArrayOffset(), ByteArrayOffset);
0065     QCOMPARE(layout.length(), Length);
0066     QCOMPARE(layout.startLine(), StartLine);
0067     QCOMPARE(layout.firstStartLinePosition(), StartLinePosition);
0068     QCOMPARE(layout.startCoord(), StartCoord);
0069     QCOMPARE(layout.finalLine(), FinalLine);
0070     QCOMPARE(layout.lastFinalLinePosition(), FinalLinePosition);
0071     QCOMPARE(layout.finalCoord(), FinalCoord);
0072     QCOMPARE(layout.noOfLines(), FinalLine + 1);
0073     QCOMPARE(layout.noOfLinesPerPage(), 1);
0074 }
0075 
0076 void ByteArrayTableLayoutTest::testSetFirstLineOffset()
0077 {
0078     ByteArrayTableLayout layout(NoOfBytesPerLine, 0, StartOffset, ByteArrayOffset, Length);
0079 
0080     layout.setFirstLineOffset(FirstLineOffset);
0081     QCOMPARE(layout.noOfBytesPerLine(), NoOfBytesPerLine);
0082     QCOMPARE(layout.startOffset(), StartOffset);
0083     QCOMPARE(layout.byteArrayOffset(), ByteArrayOffset);
0084     QCOMPARE(layout.length(), Length);
0085     QCOMPARE(layout.startLine(), StartLine);
0086     QCOMPARE(layout.firstStartLinePosition(), StartLinePosition);
0087     QCOMPARE(layout.startCoord(), StartCoord);
0088     QCOMPARE(layout.finalLine(), FinalLine);
0089     QCOMPARE(layout.lastFinalLinePosition(), FinalLinePosition);
0090     QCOMPARE(layout.finalCoord(), FinalCoord);
0091     QCOMPARE(layout.noOfLines(), FinalLine + 1);
0092     QCOMPARE(layout.noOfLinesPerPage(), 1);
0093 }
0094 
0095 void ByteArrayTableLayoutTest::testSetNoOfBytesPerLine()
0096 {
0097     ByteArrayTableLayout layout(1, FirstLineOffset, StartOffset, ByteArrayOffset, Length);
0098 
0099     layout.setNoOfBytesPerLine(NoOfBytesPerLine);
0100     QCOMPARE(layout.noOfBytesPerLine(), NoOfBytesPerLine);
0101     QCOMPARE(layout.startOffset(), StartOffset);
0102     QCOMPARE(layout.byteArrayOffset(), ByteArrayOffset);
0103     QCOMPARE(layout.length(), Length);
0104     QCOMPARE(layout.startLine(), StartLine);
0105     QCOMPARE(layout.firstStartLinePosition(), StartLinePosition);
0106     QCOMPARE(layout.startCoord(), StartCoord);
0107     QCOMPARE(layout.finalLine(), FinalLine);
0108     QCOMPARE(layout.lastFinalLinePosition(), FinalLinePosition);
0109     QCOMPARE(layout.finalCoord(), FinalCoord);
0110     QCOMPARE(layout.noOfLines(), FinalLine + 1);
0111     QCOMPARE(layout.noOfLinesPerPage(), 1);
0112 }
0113 
0114 void ByteArrayTableLayoutTest::testSetLength()
0115 {
0116     ByteArrayTableLayout layout(NoOfBytesPerLine, FirstLineOffset, StartOffset, ByteArrayOffset, 1);
0117 
0118     layout.setLength(Length);
0119     QCOMPARE(layout.noOfBytesPerLine(), NoOfBytesPerLine);
0120     QCOMPARE(layout.startOffset(), StartOffset);
0121     QCOMPARE(layout.byteArrayOffset(), ByteArrayOffset);
0122     QCOMPARE(layout.length(), Length);
0123     QCOMPARE(layout.startLine(), StartLine);
0124     QCOMPARE(layout.firstStartLinePosition(), StartLinePosition);
0125     QCOMPARE(layout.startCoord(), StartCoord);
0126     QCOMPARE(layout.finalLine(), FinalLine);
0127     QCOMPARE(layout.lastFinalLinePosition(), FinalLinePosition);
0128     QCOMPARE(layout.finalCoord(), FinalCoord);
0129     QCOMPARE(layout.noOfLines(), FinalLine + 1);
0130     QCOMPARE(layout.noOfLinesPerPage(), 1);
0131 }
0132 
0133 void ByteArrayTableLayoutTest::testSetByteArrayOffset()
0134 {
0135     ByteArrayTableLayout layout(NoOfBytesPerLine, FirstLineOffset, StartOffset, 0, Length);
0136 
0137     layout.setByteArrayOffset(ByteArrayOffset);
0138     QCOMPARE(layout.noOfBytesPerLine(), NoOfBytesPerLine);
0139     QCOMPARE(layout.startOffset(), StartOffset);
0140     QCOMPARE(layout.byteArrayOffset(), ByteArrayOffset);
0141     QCOMPARE(layout.length(), Length);
0142     QCOMPARE(layout.startLine(), StartLine);
0143     QCOMPARE(layout.firstStartLinePosition(), StartLinePosition);
0144     QCOMPARE(layout.startCoord(), StartCoord);
0145     QCOMPARE(layout.finalLine(), FinalLine);
0146     QCOMPARE(layout.lastFinalLinePosition(), FinalLinePosition);
0147     QCOMPARE(layout.finalCoord(), FinalCoord);
0148     QCOMPARE(layout.noOfLines(), FinalLine + 1);
0149     QCOMPARE(layout.noOfLinesPerPage(), 1);
0150 }
0151 
0152 void ByteArrayTableLayoutTest::testSetNoOfLinesPerPage()
0153 {
0154     ByteArrayTableLayout layout(NoOfBytesPerLine, FirstLineOffset, StartOffset, ByteArrayOffset, Length);
0155 
0156     layout.setNoOfLinesPerPage(NoOfLinesPerPage);
0157     QCOMPARE(layout.noOfBytesPerLine(), NoOfBytesPerLine);
0158     QCOMPARE(layout.startOffset(), StartOffset);
0159     QCOMPARE(layout.byteArrayOffset(), ByteArrayOffset);
0160     QCOMPARE(layout.length(), Length);
0161     QCOMPARE(layout.startLine(), StartLine);
0162     QCOMPARE(layout.firstStartLinePosition(), StartLinePosition);
0163     QCOMPARE(layout.startCoord(), StartCoord);
0164     QCOMPARE(layout.finalLine(), FinalLine);
0165     QCOMPARE(layout.lastFinalLinePosition(), FinalLinePosition);
0166     QCOMPARE(layout.finalCoord(), FinalCoord);
0167     QCOMPARE(layout.noOfLines(), FinalLine + 1);
0168     QCOMPARE(layout.noOfLinesPerPage(), NoOfLinesPerPage);
0169 }
0170 
0171 }
0172 
0173 QTEST_MAIN(Okteta::ByteArrayTableLayoutTest)
0174 
0175 #include "moc_bytearraytablelayouttest.cpp"