2023-11-19 02:12:44 +03:00
|
|
|
|
package TestingSystem.SAPFOR.Json;
|
2023-12-18 15:44:48 +03:00
|
|
|
|
import GlobalData.Tasks.TaskState;
|
|
|
|
|
|
import TestingSystem.SAPFOR.SapforPackage.SapforPackage;
|
|
|
|
|
|
import TestingSystem.SAPFOR.SapforTask.MatchState;
|
2023-12-16 03:57:01 +03:00
|
|
|
|
import TestingSystem.SAPFOR.SapforTask.SapforTask;
|
2024-02-24 23:06:49 +03:00
|
|
|
|
import TestingSystem.SAPFOR.SapforTasksPackage.UI.PackageSummary;
|
2023-09-29 00:45:45 +03:00
|
|
|
|
import com.google.gson.annotations.Expose;
|
|
|
|
|
|
|
2023-12-18 15:44:48 +03:00
|
|
|
|
import javax.swing.tree.DefaultMutableTreeNode;
|
2023-12-16 03:57:01 +03:00
|
|
|
|
import java.io.Serializable;
|
2023-12-25 17:55:15 +03:00
|
|
|
|
import java.nio.file.Paths;
|
2023-12-18 15:44:48 +03:00
|
|
|
|
import java.util.LinkedHashMap;
|
2023-09-29 00:45:45 +03:00
|
|
|
|
import java.util.List;
|
|
|
|
|
|
import java.util.Vector;
|
2023-12-25 00:33:14 +03:00
|
|
|
|
public class SapforPackage_json implements Serializable {
|
2023-10-14 02:30:31 +03:00
|
|
|
|
@Expose
|
|
|
|
|
|
public int kernels = 1;
|
2023-09-30 18:19:31 +03:00
|
|
|
|
@Expose
|
|
|
|
|
|
public String sapfor_drv = ""; //файл с сапфором. Имя уникально для сценария.
|
2023-12-25 00:33:14 +03:00
|
|
|
|
//--
|
2023-09-29 00:45:45 +03:00
|
|
|
|
@Expose
|
2023-12-25 00:33:14 +03:00
|
|
|
|
public int max_set_id = 0;
|
2023-12-25 17:55:15 +03:00
|
|
|
|
public int getMaxSetId() {
|
2023-12-25 00:33:14 +03:00
|
|
|
|
return max_set_id++;
|
|
|
|
|
|
}
|
|
|
|
|
|
//--
|
2023-09-29 00:45:45 +03:00
|
|
|
|
@Expose
|
2023-12-25 00:33:14 +03:00
|
|
|
|
public List<SapforTestingSet_json> testingSets = new Vector<>(); //сет = конфигурации + тесты.
|
|
|
|
|
|
//--
|
2023-12-16 03:57:01 +03:00
|
|
|
|
@Expose
|
|
|
|
|
|
public List<SapforTask> tasks = new Vector<>();
|
2023-12-18 15:44:48 +03:00
|
|
|
|
//-
|
|
|
|
|
|
public PackageSummary root = null;
|
|
|
|
|
|
public PackageSummary comparison_root = null;
|
2024-02-23 21:34:01 +03:00
|
|
|
|
//--
|
2023-12-18 15:44:48 +03:00
|
|
|
|
public LinkedHashMap<String, SapforTask> allTasks = new LinkedHashMap<>();
|
2024-02-23 21:34:01 +03:00
|
|
|
|
public LinkedHashMap<TaskState, Vector<SapforTask>> sortedTasks = new LinkedHashMap<>();
|
|
|
|
|
|
// public LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>> sortedTasks = new LinkedHashMap<>();
|
2023-12-18 15:44:48 +03:00
|
|
|
|
//-- задачи, отсортированные для сравнения.
|
2024-02-24 23:06:49 +03:00
|
|
|
|
// public LinkedHashMap<MatchState, LinkedHashMap<TaskState, LinkedHashMap<Integer, LinkedHashMap<String, Vector<SapforTask>>>>> comparisonSortedTasks = new LinkedHashMap<>();
|
|
|
|
|
|
public LinkedHashMap<MatchState, LinkedHashMap<TaskState, Vector<SapforTask>>> comparisonSortedTasks = new LinkedHashMap<>();
|
2023-12-18 15:44:48 +03:00
|
|
|
|
//----
|
|
|
|
|
|
//---------
|
|
|
|
|
|
public void DropComparison() {
|
2024-02-23 21:34:01 +03:00
|
|
|
|
// UI.Info("DROP COMPARISON");
|
2023-12-18 15:44:48 +03:00
|
|
|
|
comparison_root = null;
|
|
|
|
|
|
comparisonSortedTasks.clear();
|
|
|
|
|
|
for (SapforTask task : allTasks.values())
|
2024-02-24 23:06:49 +03:00
|
|
|
|
task.matchState = MatchState.NotMatch;
|
2023-12-18 15:44:48 +03:00
|
|
|
|
}
|
|
|
|
|
|
public void SortTasks() {
|
2024-02-24 23:06:49 +03:00
|
|
|
|
//-- СБРОС СРАВНЕНИЯ
|
|
|
|
|
|
for (SapforTask task: allTasks.values())
|
|
|
|
|
|
task.matchState = MatchState.Unknown;
|
|
|
|
|
|
//--
|
2023-12-18 15:44:48 +03:00
|
|
|
|
sortedTasks.clear();
|
|
|
|
|
|
for (TaskState state : TaskState.values()) {
|
2024-02-23 21:34:01 +03:00
|
|
|
|
Vector<SapforTask> stateTasks = new Vector<>();
|
2023-12-18 15:44:48 +03:00
|
|
|
|
for (SapforTask task : tasks) {
|
2024-02-23 21:34:01 +03:00
|
|
|
|
if (task.state.equals(state))
|
|
|
|
|
|
stateTasks.add(task);
|
2023-12-18 15:44:48 +03:00
|
|
|
|
}
|
2024-02-23 21:34:01 +03:00
|
|
|
|
if (!stateTasks.isEmpty())
|
|
|
|
|
|
sortedTasks.put(state, stateTasks);
|
2023-12-18 15:44:48 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void SortTasksForComparison() {
|
|
|
|
|
|
comparisonSortedTasks.clear();
|
|
|
|
|
|
for (MatchState matchState : MatchState.values()) {
|
2024-02-24 23:06:49 +03:00
|
|
|
|
LinkedHashMap<TaskState, Vector<SapforTask>> match_state_tasks = new LinkedHashMap<>();
|
|
|
|
|
|
//-
|
2023-12-18 15:44:48 +03:00
|
|
|
|
for (TaskState state : TaskState.values()) {
|
2024-02-24 23:06:49 +03:00
|
|
|
|
Vector<SapforTask> stateTasks = new Vector<>();
|
2023-12-18 15:44:48 +03:00
|
|
|
|
for (SapforTask task : tasks) {
|
2024-02-24 23:06:49 +03:00
|
|
|
|
if (task.state.equals(state) && task.matchState.equals(matchState))
|
|
|
|
|
|
stateTasks.add(task);
|
2023-12-18 15:44:48 +03:00
|
|
|
|
}
|
2024-02-24 23:06:49 +03:00
|
|
|
|
if (!stateTasks.isEmpty()) {
|
|
|
|
|
|
match_state_tasks.put(state, stateTasks);
|
2023-12-18 15:44:48 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-02-24 23:06:49 +03:00
|
|
|
|
comparisonSortedTasks.put(matchState, match_state_tasks);
|
2023-12-18 15:44:48 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-02-23 21:34:01 +03:00
|
|
|
|
public void buildTree(SapforPackage package_in) {
|
|
|
|
|
|
root = new PackageSummary();
|
|
|
|
|
|
root.count = package_in.package_json.allTasks.size();
|
|
|
|
|
|
//--
|
|
|
|
|
|
for (TaskState state : sortedTasks.keySet()) {
|
|
|
|
|
|
Vector<SapforTask> tasks = sortedTasks.get(state);
|
|
|
|
|
|
//-
|
|
|
|
|
|
if (state.equals(TaskState.DoneWithErrors))
|
|
|
|
|
|
root.errors_count += tasks.size();
|
|
|
|
|
|
//-
|
|
|
|
|
|
for (SapforTask task : tasks) {
|
|
|
|
|
|
DefaultMutableTreeNode taskNode = task.getNode(Paths.get(
|
|
|
|
|
|
package_in.getLocalWorkspace().getAbsolutePath(),
|
|
|
|
|
|
String.valueOf(task.set_id),
|
|
|
|
|
|
String.valueOf(task.sapfor_configuration_id)
|
|
|
|
|
|
).toFile());
|
2024-02-24 23:06:49 +03:00
|
|
|
|
root.add(taskNode);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
public void buildComparisonTree(SapforPackage package_in) {
|
|
|
|
|
|
comparison_root = new PackageSummary();
|
|
|
|
|
|
comparison_root.count = package_in.package_json.allTasks.size();
|
|
|
|
|
|
//--
|
|
|
|
|
|
for (MatchState match_state : comparisonSortedTasks.keySet()) {
|
|
|
|
|
|
// MatchesSummary matchesSummary = new MatchesSummary(match_state);
|
|
|
|
|
|
LinkedHashMap<TaskState, Vector<SapforTask>> task_states = comparisonSortedTasks.get(match_state);
|
|
|
|
|
|
//---
|
|
|
|
|
|
for (TaskState state : task_states.keySet()) {
|
|
|
|
|
|
Vector<SapforTask> tasks = task_states.get(state);
|
|
|
|
|
|
//-
|
|
|
|
|
|
if (state.equals(TaskState.DoneWithErrors))
|
|
|
|
|
|
comparison_root.errors_count += tasks.size();
|
|
|
|
|
|
//-
|
|
|
|
|
|
for (SapforTask task : tasks) {
|
|
|
|
|
|
DefaultMutableTreeNode taskNode = task.getNode(Paths.get(
|
|
|
|
|
|
package_in.getLocalWorkspace().getAbsolutePath(),
|
|
|
|
|
|
String.valueOf(task.set_id),
|
|
|
|
|
|
String.valueOf(task.sapfor_configuration_id)
|
|
|
|
|
|
).toFile());
|
|
|
|
|
|
comparison_root.add(taskNode);
|
|
|
|
|
|
}
|
2024-02-23 21:34:01 +03:00
|
|
|
|
}
|
2024-02-24 23:06:49 +03:00
|
|
|
|
|
2024-02-23 21:34:01 +03:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2023-09-29 00:45:45 +03:00
|
|
|
|
}
|