MCPcopy Create free account
hub / github.com/Project-LemonLime/Project_LemonLime / searchMatchedFiles

Method searchMatchedFiles

src/addtestcaseswizard.cpp:202–307  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

200}
201
202void AddTestCasesWizard::searchMatchedFiles() {
203 QStringList inputFiles;
204 QStringList outputFiles;
205 getFiles(Settings::dataPath(), "", inputFiles);
206 getFiles(Settings::dataPath(), "", outputFiles);
207 QString regExp = getFullRegExp(inputFilesPattern);
208
209 for (int i = 0; i < inputFiles.size(); i++) {
210 if (! QRegularExpression(QRegularExpression::anchoredPattern(regExp))
211 .match(inputFiles[i])
212 .hasMatch()) {
213 inputFiles.removeAt(i);
214 i--;
215 }
216 }
217
218 regExp = getFullRegExp(outputFilesPattern);
219
220 for (int i = 0; i < outputFiles.size(); i++) {
221 if (! QRegularExpression(QRegularExpression::anchoredPattern(regExp))
222 .match(outputFiles[i])
223 .hasMatch()) {
224 outputFiles.removeAt(i);
225 i--;
226 }
227 }
228
229 std::sort(inputFiles.begin(), inputFiles.end(), compareFileName);
230 std::sort(outputFiles.begin(), outputFiles.end(), compareFileName);
231 QList<QStringList> inputFilesMatchedPart;
232 QList<QStringList> outputFilesMatchedPart;
233
234 for (auto &inputFile : inputFiles) {
235 inputFilesMatchedPart.append(getMatchedPart(inputFile, inputFilesPattern));
236 }
237
238 for (auto &outputFile : outputFiles) {
239 outputFilesMatchedPart.append(getMatchedPart(outputFile, outputFilesPattern));
240 }
241
242 QMultiMap<QString, int> loc;
243 QList<std::pair<QString, QString>> singleCases;
244 QList<QStringList> matchedPart;
245
246 // if(ui->outputFilesPattern->isEnabled()) {
247 for (int i = 0; i < inputFiles.size(); i++) {
248 loc.replace(inputFilesMatchedPart[i].join("*"), i);
249 }
250
251 for (int i = 0; i < outputFiles.size(); i++) {
252 if (loc.count(outputFilesMatchedPart[i].join("*")) > 0) {
253 int partner = loc.value(outputFilesMatchedPart[i].join("*"));
254 singleCases.append(std::make_pair(inputFiles[partner], outputFiles[i]));
255 matchedPart.append(outputFilesMatchedPart[i]);
256 }
257 }
258
259 /*} else {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected