| 127 | } |
| 128 | |
| 129 | void testSimplifiedModel() |
| 130 | { |
| 131 | const auto tree = buildBottomUpTree(R"( |
| 132 | 4;3;2;1 |
| 133 | 5;3;2;1 |
| 134 | 9;8;7;6 |
| 135 | 11;10;7;6 |
| 136 | 12;7;6 |
| 137 | 13;6 |
| 138 | 14 |
| 139 | )"); |
| 140 | QCOMPARE(tree.root.children.size(), 3); |
| 141 | const auto i1 = &tree.root.children.first(); |
| 142 | QCOMPARE(i1->symbol.symbol, QStringLiteral("1")); |
| 143 | QCOMPARE(i1->children.size(), 1); |
| 144 | const auto i2 = &i1->children.first(); |
| 145 | QCOMPARE(i2->symbol.symbol, QStringLiteral("2")); |
| 146 | QCOMPARE(i2->children.size(), 1); |
| 147 | const auto i3 = &i2->children.first(); |
| 148 | QCOMPARE(i3->symbol.symbol, QStringLiteral("3")); |
| 149 | QCOMPARE(i3->children.size(), 2); |
| 150 | const auto i4 = &i3->children.first(); |
| 151 | QCOMPARE(i4->symbol.symbol, QStringLiteral("4")); |
| 152 | QCOMPARE(i4->children.size(), 0); |
| 153 | const auto i5 = &i3->children.last(); |
| 154 | QCOMPARE(i5->symbol.symbol, QStringLiteral("5")); |
| 155 | QCOMPARE(i5->children.size(), 0); |
| 156 | |
| 157 | BottomUpModel model; |
| 158 | model.setSimplify(true); |
| 159 | QAbstractItemModelTester tester(&model); |
| 160 | |
| 161 | model.setData(tree); |
| 162 | QCOMPARE(model.rowCount(), 3); |
| 163 | |
| 164 | const auto i1_idx = model.indexFromItem(i1, 0); |
| 165 | QVERIFY(i1_idx.isValid()); |
| 166 | QCOMPARE(i1_idx, model.index(0, 0)); |
| 167 | QCOMPARE(model.parent(i1_idx), QModelIndex()); |
| 168 | QCOMPARE(model.itemFromIndex(i1_idx), i1); |
| 169 | QCOMPARE(model.rowCount(i1_idx), 2); // simplified |
| 170 | |
| 171 | const auto i2_idx = model.indexFromItem(i2, 0); |
| 172 | QVERIFY(i2_idx.isValid()); |
| 173 | QCOMPARE(i2_idx, model.index(0, 0, i1_idx)); |
| 174 | QCOMPARE(model.parent(i2_idx), i1_idx); |
| 175 | QCOMPARE(model.itemFromIndex(i2_idx), i2); |
| 176 | QCOMPARE(model.rowCount(i2_idx), 0); // simplified |
| 177 | |
| 178 | const auto i3_idx = model.indexFromItem(i3, 0); |
| 179 | QVERIFY(i3_idx.isValid()); |
| 180 | QCOMPARE(i3_idx, model.index(1, 0, i1_idx)); |
| 181 | QCOMPARE(model.parent(i3_idx), i1_idx); |
| 182 | QCOMPARE(model.itemFromIndex(i3_idx), i3); |
| 183 | QCOMPARE(model.rowCount(i3_idx), 2); |
| 184 | |
| 185 | const auto i4_idx = model.indexFromItem(i4, 0); |
| 186 | QVERIFY(i4_idx.isValid()); |
nothing calls this directly
no test coverage detected