черновик сравнения задач.

This commit is contained in:
2023-10-24 23:19:13 +03:00
parent e45cf5659d
commit 37c7bbda44
3 changed files with 66 additions and 10 deletions

View File

@@ -314,30 +314,47 @@ public class TestingServer extends RepositoryServer<TestsDatabase> {
return (SapforTasksResults_json) Utils.jsonFromFile(
results_file, SapforTasksResults_json.class);
}
public String CompareSapforPackages(SapforTasksPackage package1, SapforTasksPackage package2) throws Exception {
String res = "";
//надо в другое место.
public Vector<String> CompareSapforPackages(SapforTasksPackage package1, SapforTasksPackage package2) throws Exception {
Vector<String> comparisonLog = new Vector<>();
// чтобы сравнивать. должен быть идентичный список тестов. (без учета последовательности)
// идентичный набор проходов (с учетом последовательности)
//идентичный набор флагов (?) без учета последовательности.
// то есть должны отличаться только тестируемые версии САПФОР.
SapforTasksResults_json results1_json = getSapforPackageResults(package1);
SapforTasksResults_json results2_json = getSapforPackageResults(package2);
if (results1_json.tasks.size()!=results2_json.tasks.size())
throw new RepositoryRefuseException("В пакетах разное число задач.");
if (results1_json.tasks.size() != results2_json.tasks.size()) {
comparisonLog.add("Количество задач в пакетах не совпадает.");
comparisonLog.add(package1.id + ": " + results1_json.tasks.size() + "/" + package2.id + ": " + results2_json.tasks.size());
return comparisonLog;
}
//подходит если все задачи из первого пакета содержатся во втором, и размер одинаковый.
Vector<SapforTask> sortedTasks2 = new Vector<>();
for (SapforTask task1 : results1_json.tasks) {
//на
boolean match = false;
for (SapforTask task2: results2_json.tasks){
for (SapforTask task2 : results2_json.tasks) {
if (task1.isComparable(task2)) {
match = true;
sortedTasks2.add(task2);
break;
}
}
if (!match)
throw new RepositoryRefuseException("Задачи в пакетах не совпадают!");
if (!match) {
comparisonLog.add("Найдена не совпадающая задача.");
return comparisonLog;
}
}
return "";
for (SapforTask task1: results1_json.tasks){
for (SapforTask task2: sortedTasks2){
task1.Compare(task2, comparisonLog);
}
}
return comparisonLog;
}
@Override
protected void Session() throws Exception {