++
отслеживание нанов в тестах
This commit is contained in:
19
.idea/workspace.xml
generated
19
.idea/workspace.xml
generated
@@ -7,20 +7,17 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
<list default="true" id="e42177c3-2328-4b27-8a01-35779b2beb99" name="Default Changelist" comment="">
|
||||||
|
<change afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/DeleteRemoteWorkspace.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/properties" beforeDir="false" afterPath="$PROJECT_DIR$/properties" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/ComponentsServer.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/SubscriberWorkspace/UI/SubscriberWorkspacesForm.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/ComponentsServer/SubscriberWorkspace/UI/SubscriberWorkspacesForm.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Constants.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerDialog.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/TaskState.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Tasks/TaskState.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Compiler/UI/CompilerFields.form" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/TestPass.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/TestPass.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Machine/UI/MachineDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Machine/UI/MachineDialog.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/PassCode.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Machine/UI/MachineFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/Machine/UI/MachineFields.form" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/RepositoryServer.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/RepositoryServer.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserDialog.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserDialog.java" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/TestingSystem/DVM/DVMPackage/DVMPackage.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserFields.form" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserFields.form" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Utils.java" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserFields.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/GlobalData/User/UI/UserFields.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/InitialiseUser.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/InitialiseUser.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishRemoteWorkspace.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Passes/All/PublishRemoteWorkspace.java" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/_VisualDVM/Repository/Server/ServerCode.java" afterDir="false" />
|
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
"ServerUserPassword": "mprit_2011",
|
"ServerUserPassword": "mprit_2011",
|
||||||
"OfferRegistrationOnStart": true,
|
"OfferRegistrationOnStart": true,
|
||||||
"Workspace": "E:\\Tests",
|
"Workspace": "E:\\Tests",
|
||||||
"ProjectsSearchDirectory": "E:\\BUG",
|
"ProjectsSearchDirectory": "E:\\Tests\\Downloads",
|
||||||
"DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system",
|
"DocumentsDirectory": "C:\\Users\\misha\\Documents\\_testing_system",
|
||||||
"VisualiserPath": "C:\\Users\\misha\\Downloads",
|
"VisualiserPath": "C:\\Users\\misha\\Downloads",
|
||||||
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
|
"Sapfor_FPath": "E:\\_sapfor_x64\\Components\\Sapfor_F",
|
||||||
@@ -33,8 +33,8 @@
|
|||||||
"CreateEthalonTasks": true,
|
"CreateEthalonTasks": true,
|
||||||
"ErasePackageWorkspace": true,
|
"ErasePackageWorkspace": true,
|
||||||
"lastMachineId": 1,
|
"lastMachineId": 1,
|
||||||
"lastUserId": 40,
|
"lastUserId": 17,
|
||||||
"lastCompilerId": -1,
|
"lastCompilerId": 15,
|
||||||
"RegisterOn": false,
|
"RegisterOn": false,
|
||||||
"SpacesOn": false,
|
"SpacesOn": false,
|
||||||
"EmptyLinesOn": false,
|
"EmptyLinesOn": false,
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import Common.Visual.Tables.ColumnInfo;
|
|||||||
import _VisualDVM.ComponentsServer.SubscriberWorkspace.SubscriberWorkspace;
|
import _VisualDVM.ComponentsServer.SubscriberWorkspace.SubscriberWorkspace;
|
||||||
import _VisualDVM.ComponentsServer.UserAccount.UserAccount;
|
import _VisualDVM.ComponentsServer.UserAccount.UserAccount;
|
||||||
import _VisualDVM.Global;
|
import _VisualDVM.Global;
|
||||||
|
import _VisualDVM.Passes.PassCode;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
public class SubscriberWorkspacesForm extends DataSetControlForm<SubscriberWorkspace> {
|
public class SubscriberWorkspacesForm extends DataSetControlForm<SubscriberWorkspace> {
|
||||||
@@ -45,7 +46,7 @@ public class SubscriberWorkspacesForm extends DataSetControlForm<SubscriberWorks
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public DataMenuBar createMenuBar() {
|
public DataMenuBar createMenuBar() {
|
||||||
return new DataMenuBar(dataSource.getPluralDescription());
|
return new DataMenuBar(dataSource.getPluralDescription(), PassCode.DeleteRemoteWorkspace);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean isObjectVisible(SubscriberWorkspace object) {
|
public boolean isObjectVisible(SubscriberWorkspace object) {
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import Common.Utils.Vector_;
|
|||||||
|
|
||||||
import java.util.Vector;
|
import java.util.Vector;
|
||||||
public class Constants {
|
public class Constants {
|
||||||
public static final int version = 1216;
|
public static final int version = 1217;
|
||||||
public static final int planner_version = 24;
|
public static final int planner_version = 24;
|
||||||
public static final int testingMaxKernels = 64;
|
public static final int testingMaxKernels = 64;
|
||||||
//--
|
//--
|
||||||
|
|||||||
@@ -14,11 +14,12 @@ public enum TaskState implements StatusEnum {
|
|||||||
//-----------------------
|
//-----------------------
|
||||||
Finished,
|
Finished,
|
||||||
//--- результирующие
|
//--- результирующие
|
||||||
|
Crushed,
|
||||||
|
NaN,
|
||||||
DoneWithErrors,
|
DoneWithErrors,
|
||||||
DoneWithDiffs,
|
DoneWithDiffs,
|
||||||
AbortedByTimeout,
|
AbortedByTimeout,
|
||||||
AbortedByUser,
|
AbortedByUser,
|
||||||
Crushed,
|
|
||||||
WrongTestFormat,
|
WrongTestFormat,
|
||||||
InternalError,
|
InternalError,
|
||||||
Done,
|
Done,
|
||||||
@@ -40,6 +41,7 @@ public enum TaskState implements StatusEnum {
|
|||||||
case InternalError:
|
case InternalError:
|
||||||
case Crushed:
|
case Crushed:
|
||||||
case DoneWithDiffs:
|
case DoneWithDiffs:
|
||||||
|
case NaN:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
@@ -47,6 +49,8 @@ public enum TaskState implements StatusEnum {
|
|||||||
}
|
}
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
|
case NaN:
|
||||||
|
return "NaN";
|
||||||
case Waiting:
|
case Waiting:
|
||||||
return "ожидание";
|
return "ожидание";
|
||||||
case WorkspaceCreated:
|
case WorkspaceCreated:
|
||||||
@@ -104,6 +108,7 @@ public enum TaskState implements StatusEnum {
|
|||||||
case InternalError:
|
case InternalError:
|
||||||
case Canceled:
|
case Canceled:
|
||||||
case DoneWithDiffs:
|
case DoneWithDiffs:
|
||||||
|
case NaN:
|
||||||
return VisualiserFonts.BadState;
|
return VisualiserFonts.BadState;
|
||||||
case Queued:
|
case Queued:
|
||||||
case Running:
|
case Running:
|
||||||
@@ -149,6 +154,7 @@ public enum TaskState implements StatusEnum {
|
|||||||
case Crushed:
|
case Crushed:
|
||||||
case InternalError:
|
case InternalError:
|
||||||
case Canceled:
|
case Canceled:
|
||||||
|
case NaN:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
21
src/_VisualDVM/Passes/All/DeleteRemoteWorkspace.java
Normal file
21
src/_VisualDVM/Passes/All/DeleteRemoteWorkspace.java
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
package _VisualDVM.Passes.All;
|
||||||
|
import _VisualDVM.ComponentsServer.SubscriberWorkspace.SubscriberWorkspace;
|
||||||
|
import _VisualDVM.Global;
|
||||||
|
import _VisualDVM.Passes.Server.ComponentsServerPass;
|
||||||
|
import _VisualDVM.Repository.Server.ServerCode;
|
||||||
|
import javafx.util.Pair;
|
||||||
|
public class DeleteRemoteWorkspace extends ComponentsServerPass<SubscriberWorkspace> {
|
||||||
|
@Override
|
||||||
|
public String getIconPath() {
|
||||||
|
return "/Common/icons/Delete.png";
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
protected boolean canStart(Object... args) throws Exception {
|
||||||
|
if (Global.componentsServer.credentials_db.workspaces.getUI().CheckCurrent(Log)) {
|
||||||
|
target = Global.componentsServer.credentials_db.workspaces.getUI().getCurrent();
|
||||||
|
return SendRequest(ServerCode.DeleteSubscriberWorkspace, "",
|
||||||
|
new Pair<>(target.getClass(), target.getPK()));
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package _VisualDVM.Passes.All;
|
package _VisualDVM.Passes.All;
|
||||||
import Common.Passes.Pass;
|
import Common.Passes.Pass;
|
||||||
|
import _VisualDVM.Utils;
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@@ -38,46 +39,5 @@ public class TestPass extends Pass {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
protected void body() throws Exception {
|
protected void body() throws Exception {
|
||||||
int a = 1 / 0;
|
|
||||||
// System.out.println(Global.componentsServer.credentials_db.userAccounts.getPackedActiveRecipients());
|
|
||||||
// String cpuId = getMotherboardSN();
|
|
||||||
// UI.Info(cpuId);
|
|
||||||
/*
|
|
||||||
SystemInfo systemInfo = new SystemInfo();
|
|
||||||
HardwareAbstractionLayer hardware = systemInfo.getHardware();
|
|
||||||
CentralProcessor processor = hardware.getProcessor();
|
|
||||||
CentralProcessor.ProcessorIdentifier processorIdentifier = processor.getProcessorIdentifier();
|
|
||||||
System.out.println("Processor Vendor: " + processorIdentifier.getVendor());
|
|
||||||
System.out.println("Processor Name: " + processorIdentifier.getName());
|
|
||||||
System.out.println("Processor ID: " + processorIdentifier.getProcessorID());
|
|
||||||
System.out.println("Identifier: " + processorIdentifier.getIdentifier());
|
|
||||||
System.out.println("Microarchitecture: " + processorIdentifier.getMicroarchitecture());
|
|
||||||
System.out.println("Frequency (Hz): " + processorIdentifier.getVendorFreq());
|
|
||||||
System.out.println("Frequency (GHz): " + processorIdentifier.getVendorFreq() / 1000000000.0);
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
String serial = "";
|
|
||||||
Scanner sc = null;
|
|
||||||
Process process = null;
|
|
||||||
try {
|
|
||||||
process = Runtime.getRuntime().exec(new String[] { "wmic", "cpu", "get", "ProcessorId" });
|
|
||||||
process.getOutputStream().close();
|
|
||||||
sc = new Scanner(process.getInputStream());
|
|
||||||
sc.next();
|
|
||||||
serial = sc.next();
|
|
||||||
} catch (IOException e) {
|
|
||||||
} dummy
|
|
||||||
UI.Info(Utils_.Brackets(serial));
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
KeyGenerator keyGenerator = KeyGenerator.getInstance("AES");
|
|
||||||
SecureRandom secureRandom = new SecureRandom();
|
|
||||||
int keyBitSize = 256;
|
|
||||||
keyGenerator.init(keyBitSize, secureRandom);
|
|
||||||
SecretKey secretKey = keyGenerator.generateKey();
|
|
||||||
System.out.println("====");
|
|
||||||
System.out.println(secretKey.getEncoded());
|
|
||||||
System.out.println("====");
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -249,6 +249,7 @@ public enum PassCode implements PassCode_ {
|
|||||||
//->
|
//->
|
||||||
CheckRemoteWorkspace,
|
CheckRemoteWorkspace,
|
||||||
PublishRemoteWorkspace,
|
PublishRemoteWorkspace,
|
||||||
|
DeleteRemoteWorkspace,
|
||||||
//->
|
//->
|
||||||
PrepareForModulesAssembly,
|
PrepareForModulesAssembly,
|
||||||
//->
|
//->
|
||||||
@@ -362,6 +363,8 @@ public enum PassCode implements PassCode_ {
|
|||||||
@Override
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
switch (this) {
|
switch (this) {
|
||||||
|
case DeleteRemoteWorkspace:
|
||||||
|
return "Удалить рабочее пространство пользователя";
|
||||||
case CompareDVMRunTaskToEthalon:
|
case CompareDVMRunTaskToEthalon:
|
||||||
return "Сравнить с эталоном";
|
return "Сравнить с эталоном";
|
||||||
case ComponentsServerBackUp:
|
case ComponentsServerBackUp:
|
||||||
|
|||||||
@@ -227,6 +227,9 @@ public abstract class RepositoryServer<D extends Database> {
|
|||||||
case ReceiveFile:
|
case ReceiveFile:
|
||||||
ReceiveFile();
|
ReceiveFile();
|
||||||
break;
|
break;
|
||||||
|
case Email:
|
||||||
|
Email();
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
UnsafeSession();
|
UnsafeSession();
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -150,12 +150,10 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
|||||||
if (ethalon == null) {
|
if (ethalon == null) {
|
||||||
String options_ = "-s";
|
String options_ = "-s";
|
||||||
String environments_ = "";
|
String environments_ = "";
|
||||||
|
|
||||||
if (Global.normalProperties.CompleteCompilationOptions)
|
if (Global.normalProperties.CompleteCompilationOptions)
|
||||||
options_ = completeOptions(options_);
|
options_ = completeOptions(options_);
|
||||||
if (Global.normalProperties.CompleteRunEnvironments)
|
if (Global.normalProperties.CompleteRunEnvironments)
|
||||||
environments_ = completeEnvironments(environments_);
|
environments_ = completeEnvironments(environments_);
|
||||||
|
|
||||||
compilationTasks.add(compilationTask = new DVMCompilationTask(
|
compilationTasks.add(compilationTask = new DVMCompilationTask(
|
||||||
index, configuration,
|
index, configuration,
|
||||||
options_,
|
options_,
|
||||||
@@ -305,23 +303,21 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
|||||||
List<String> output_lines = Arrays.asList(output.split("\n"));
|
List<String> output_lines = Arrays.asList(output.split("\n"));
|
||||||
List<String> errors_lines = Arrays.asList(errors.split("\n"));
|
List<String> errors_lines = Arrays.asList(errors.split("\n"));
|
||||||
//---
|
//---
|
||||||
if (output.trim().isEmpty()) {
|
if (output.trim().isEmpty() || Utils.isCrushed(output_lines, errors_lines)) {
|
||||||
runTask.state = TaskState.Crushed;
|
|
||||||
} else {
|
|
||||||
if (Utils.isCrushed(output_lines, errors_lines)) {
|
|
||||||
runTask.state = TaskState.Crushed;
|
runTask.state = TaskState.Crushed;
|
||||||
} else {
|
} else {
|
||||||
|
if (Utils.hasNan(output_lines))
|
||||||
|
runTask.state = TaskState.NaN;
|
||||||
|
else {
|
||||||
//--
|
//--
|
||||||
Pair<TaskState, Integer> results = new Pair<>(TaskState.Done, 100);
|
Pair<TaskState, Integer> results = new Pair<>(TaskState.Done, 100);
|
||||||
switch (runTask.test_type) {
|
switch (runTask.test_type) {
|
||||||
case Correctness:
|
|
||||||
results = Utils.analyzeCorrectness(output_lines);
|
|
||||||
break;
|
|
||||||
case Performance:
|
case Performance:
|
||||||
results = Utils.analyzePerformance(output_lines);
|
results = Utils.analyzePerformance(output_lines);
|
||||||
runTask.CleanTime = Utils.parseCleanTime(output);
|
runTask.CleanTime = Utils.parseCleanTime(output);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
results = Utils.analyzeCorrectness(output_lines);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
//---
|
//---
|
||||||
@@ -363,7 +359,7 @@ public class DVMPackage extends TestingPackage<DVMPackage_json> {
|
|||||||
);
|
);
|
||||||
String taskOut = FileUtils.readFileToString(taskOutFile);
|
String taskOut = FileUtils.readFileToString(taskOutFile);
|
||||||
String ethalonOut = FileUtils.readFileToString(ethalonOutFile);
|
String ethalonOut = FileUtils.readFileToString(ethalonOutFile);
|
||||||
if (!taskOut.equals(ethalonOut)){
|
if (!taskOut.equals(ethalonOut)) {
|
||||||
runTask.state = TaskState.DoneWithDiffs;
|
runTask.state = TaskState.DoneWithDiffs;
|
||||||
hasErrors = true;
|
hasErrors = true;
|
||||||
good--;
|
good--;
|
||||||
|
|||||||
@@ -490,6 +490,16 @@ public class Utils {
|
|||||||
public static boolean isCrushed(List<String> output_lines, List<String> errors_lines) {
|
public static boolean isCrushed(List<String> output_lines, List<String> errors_lines) {
|
||||||
return output_lines.stream().anyMatch(Utils::isCrushedLine) || errors_lines.stream().anyMatch(Utils::isCrushedLine);
|
return output_lines.stream().anyMatch(Utils::isCrushedLine) || errors_lines.stream().anyMatch(Utils::isCrushedLine);
|
||||||
}
|
}
|
||||||
|
public static boolean hasNan(List<String> output_lines){
|
||||||
|
for (String line: output_lines)
|
||||||
|
if (hasNan(line)) return true;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
public static boolean hasNan(String line){
|
||||||
|
Pattern pattern = Pattern.compile("\\bnan\\b");
|
||||||
|
Matcher matcher = pattern.matcher(line.toLowerCase());
|
||||||
|
return matcher.find();
|
||||||
|
}
|
||||||
public static Pair<TaskState, Integer> analyzeCorrectness(List<String> lines) {
|
public static Pair<TaskState, Integer> analyzeCorrectness(List<String> lines) {
|
||||||
int complete = 0;
|
int complete = 0;
|
||||||
int errors = 0;
|
int errors = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user