File indexing completed on 2024-05-12 16:45:29
0001 /*************************************************************************** 0002 * SPDX-FileCopyrightText: 2022 S. MANKOWSKI stephane@mankowski.fr 0003 * SPDX-FileCopyrightText: 2022 G. DE BURE support@mankowski.fr 0004 * SPDX-License-Identifier: GPL-3.0-or-later 0005 ***************************************************************************/ 0006 /** @file 0007 * This file is a test script. 0008 * 0009 * @author Stephane MANKOWSKI 0010 */ 0011 #include "skgtestmacro.h" 0012 #include "skgtreemap.h" 0013 0014 #define SKGTESTLAYOUT(VARIABLE, NAME, X, Y, W, H, VALUE) \ 0015 SKGTEST(QStringLiteral("getID"), (VARIABLE).getID(), NAME)\ 0016 SKGTEST(QStringLiteral("getX"), SKGServices::doubleToString((VARIABLE).getX()), SKGServices::doubleToString(X))\ 0017 SKGTEST(QStringLiteral("getY"), SKGServices::doubleToString((VARIABLE).getY()), SKGServices::doubleToString(Y))\ 0018 SKGTEST(QStringLiteral("getW"), SKGServices::doubleToString((VARIABLE).getW()), SKGServices::doubleToString(W))\ 0019 SKGTEST(QStringLiteral("getH"), SKGServices::doubleToString((VARIABLE).getH()), SKGServices::doubleToString(H))\ 0020 SKGTEST(QStringLiteral("getValue"), SKGServices::doubleToString((VARIABLE).getValue()), SKGServices::doubleToString(VALUE)) 0021 0022 int main(int argc, char** argv) 0023 { 0024 Q_UNUSED(argc) 0025 Q_UNUSED(argv) 0026 0027 // Init test 0028 SKGINITTEST(true) 0029 0030 // A Very simple case (1 element) 0031 { 0032 // Build initial test case 0033 SKGTreeMap t1(QStringLiteral("Root"), 0, 0, 0, 6, 4); 0034 t1.addChild(SKGTreeMap(QStringLiteral("1.1"), 100)); 0035 0036 // Compute the layout 0037 t1.compute(); 0038 0039 // Check root 0040 SKGTESTLAYOUT(t1, QStringLiteral("Root"), 0.0, 0.0, 6.0, 4.0, 100.0); 0041 0042 // Check the layout 0043 auto tiles = t1.getChildren(); 0044 SKGTESTLAYOUT(tiles[0], QStringLiteral("1.1"), 0.0, 0.0, 6.0, 4.0, 100.0); 0045 } 0046 0047 // A simple case (2 elements horizontal) 0048 { 0049 // Build initial test case 0050 SKGTreeMap t1(QStringLiteral("Root"), 0, 0, 0, 6, 4); 0051 t1.addChild(SKGTreeMap(QStringLiteral("1.1"), 100)); 0052 t1.addChild(SKGTreeMap(QStringLiteral("1.2"), 300)); 0053 0054 // Compute the layout 0055 t1.compute(); 0056 0057 // Check root 0058 SKGTESTLAYOUT(t1, QStringLiteral("Root"), 0.0, 0.0, 6.0, 4.0, 400.0); 0059 0060 // Check the layout 0061 auto tiles = t1.getChildren(); 0062 SKGTESTLAYOUT(tiles[0], QStringLiteral("1.2"), 0.0, 0.0, 4.5, 4.0, 300.0); 0063 SKGTESTLAYOUT(tiles[1], QStringLiteral("1.1"), 4.5, 0.0, 1.5, 4.0, 100.0); 0064 } 0065 0066 // A simple case (2 elements vertical) 0067 { 0068 // Build initial test case 0069 SKGTreeMap t1(QStringLiteral("Root"), 0, 0, 0, 4, 6); 0070 t1.addChild(SKGTreeMap(QStringLiteral("1.1"), 100)); 0071 t1.addChild(SKGTreeMap(QStringLiteral("1.2"), 300)); 0072 0073 // Compute the layout 0074 t1.compute(); 0075 0076 // Check root 0077 SKGTESTLAYOUT(t1, QStringLiteral("Root"), 0.0, 0.0, 4.0, 6.0, 400.0); 0078 0079 // Check the layout 0080 auto tiles = t1.getChildren(); 0081 SKGTESTLAYOUT(tiles[0], QStringLiteral("1.2"), 0.0, 0.0, 4.0, 4.5, 300.0); 0082 SKGTESTLAYOUT(tiles[1], QStringLiteral("1.1"), 0.0, 4.5, 4.0, 1.5, 100.0); 0083 } 0084 0085 // More complex case 0086 // 4 |------------| 0087 // | 6 |2|2|1| 0088 // | |-----| 0089 // 2 |-------4 |3| 0090 // | 6 | | | 0091 // | | | | 0092 // 0 |------------| 0093 // 0 3 6 0094 { 0095 // Build initial test case 0096 SKGTreeMap t1(QStringLiteral("Root"), 0, 0, 0, 6, 4); 0097 t1.addChild(SKGTreeMap(QStringLiteral("1.1"), 6)); 0098 t1.addChild(SKGTreeMap(QStringLiteral("1.6"), 2)); 0099 t1.addChild(SKGTreeMap(QStringLiteral("1.3"), 4)); 0100 t1.addChild(SKGTreeMap(QStringLiteral("1.4"), 3)); 0101 t1.addChild(SKGTreeMap(QStringLiteral("1.5"), 2)); 0102 t1.addChild(SKGTreeMap(QStringLiteral("1.2"), 6)); 0103 t1.addChild(SKGTreeMap(QStringLiteral("1.7"), 1)); 0104 t1.addChild(SKGTreeMap(QStringLiteral("1.8"), 0)); 0105 0106 // Compute the layout 0107 t1.compute(); 0108 0109 // Check root 0110 auto result = t1.getAllTilesById(); 0111 SKGTESTLAYOUT(result[QStringLiteral("Root")], QStringLiteral("Root"), 0.0, 0.0, 6.0, 4.0, 24.0); 0112 0113 // Check the layout 0114 SKGTESTLAYOUT(result[QStringLiteral("1.1")], QStringLiteral("1.1"), 0.0, 0.0, 3.0, 2.0, 6.0); 0115 SKGTESTLAYOUT(result[QStringLiteral("1.2")], QStringLiteral("1.2"), 0.0, 2.0, 3.0, 2.0, 6.0); 0116 SKGTESTLAYOUT(result[QStringLiteral("1.3")], QStringLiteral("1.3"), 3.0, 0.0, 4.0 * 3.0 / 7.0, 7.0 / 3.0, 4.0); 0117 SKGTESTLAYOUT(result[QStringLiteral("1.4")], QStringLiteral("1.4"), 3.0 + 4.0 * 3.0 / 7.0, 0.0, 3.0 * 3.0 / 7.0, 7.0 / 3.0, 3.0); 0118 0119 SKGTESTLAYOUT(result[QStringLiteral("1.5")], QStringLiteral("1.5"), 3.0, 7.0 / 3.0, 2.0 * 3.0 / 5.0, 4.0 - 7.0 / 3.0, 2.0); 0120 SKGTESTLAYOUT(result[QStringLiteral("1.6")], QStringLiteral("1.6"), 3.0 + 2.0 * 3.0 / 5.0, 7.0 / 3.0, 2.0 * 3.0 / 5.0, 4.0 - 7.0 / 3.0, 2.0); 0121 SKGTESTLAYOUT(result[QStringLiteral("1.7")], QStringLiteral("1.7"), 3.0 + 4.0 * 3.0 / 5.0, 7.0 / 3.0, 1.0 * 3.0 / 5.0, 4.0 - 7.0 / 3.0, 1.0); 0122 SKGTESTLAYOUT(result[QStringLiteral("1.8")], QStringLiteral("1.8"), 3.0 + 4.0 * 3.0 / 5.0, 4.0, 0.6, 0, 0); 0123 } 0124 0125 // End test 0126 SKGENDTEST() 0127 }