use of de.tum.in.www1.artemis.service.hestia.behavioral.GroupedFile in project ArTEMiS by ls1intum.
the class CombineChangeBlocksTest method initBlackboard.
@BeforeEach
public void initBlackboard() {
BehavioralBlackboard blackboard = new BehavioralBlackboard(null, null, null);
var groupedFiles = new ArrayList<GroupedFile>();
blackboard.setGroupedFiles(groupedFiles);
groupedFile = new GroupedFile("test.java", null, null, null);
groupedFiles.add(groupedFile);
combineChangeBlocks = new CombineChangeBlocks(blackboard);
}
use of de.tum.in.www1.artemis.service.hestia.behavioral.GroupedFile in project ArTEMiS by ls1intum.
the class CreateCommonChangeBlocksTest method initBlackboard.
@BeforeEach
public void initBlackboard() {
BehavioralBlackboard blackboard = new BehavioralBlackboard(null, null, null);
var groupedFiles = new ArrayList<GroupedFile>();
blackboard.setGroupedFiles(groupedFiles);
groupedFile = new GroupedFile("test.java", null, null, null);
groupedFiles.add(groupedFile);
createCommonChangeBlocks = new CreateCommonChangeBlocks(blackboard);
}
use of de.tum.in.www1.artemis.service.hestia.behavioral.GroupedFile in project ArTEMiS by ls1intum.
the class CreateSolutionEntriesTest method initBlackboard.
@BeforeEach
public void initBlackboard() {
blackboard = new BehavioralBlackboard(null, null, null);
var groupedFiles = new ArrayList<GroupedFile>();
blackboard.setGroupedFiles(groupedFiles);
groupedFile = new GroupedFile("test.java", new ProgrammingExerciseTestCase(), null, null);
groupedFiles.add(groupedFile);
createSolutionEntries = new CreateSolutionEntries(blackboard);
}
use of de.tum.in.www1.artemis.service.hestia.behavioral.GroupedFile in project Artemis by ls1intum.
the class CreateCommonChangeBlocks method executeAction.
@Override
public boolean executeAction() {
boolean didChanges = false;
for (GroupedFile groupedFile : blackboard.getGroupedFiles()) {
var changeBlocks = new TreeSet<GroupedFile.ChangeBlock>();
Integer previousLine = null;
Integer startLine = null;
int lineCount = 0;
for (Integer currentLine : groupedFile.getCommonLines()) {
if (startLine == null) {
startLine = currentLine;
}
// Check if this is a new change block
if (previousLine != null && currentLine - 1 > previousLine) {
changeBlocks.add(new GroupedFile.ChangeBlock(IntStream.range(startLine, startLine + lineCount).boxed().toList()));
lineCount = 0;
startLine = currentLine;
}
lineCount++;
previousLine = currentLine;
}
// Add the last change block if any existA
if (startLine != null) {
changeBlocks.add(new GroupedFile.ChangeBlock(IntStream.range(startLine, startLine + lineCount).boxed().toList()));
}
if (!changeBlocks.equals(groupedFile.getCommonChanges())) {
groupedFile.setCommonChanges(changeBlocks);
didChanges = true;
}
}
return didChanges;
}
use of de.tum.in.www1.artemis.service.hestia.behavioral.GroupedFile in project Artemis by ls1intum.
the class InsertFileContents method executeAction.
@Override
public boolean executeAction() throws BehavioralSolutionEntryGenerationException {
for (GroupedFile groupedFile : blackboard.getGroupedFiles()) {
var fileContent = blackboard.getSolutionRepoFiles().get(groupedFile.getFilePath());
if (fileContent == null) {
throw new BehavioralSolutionEntryGenerationException(String.format("Unable to find file '%s' in the solution repo despite it being referenced in the git-diff and coverage", groupedFile.getFilePath()));
}
groupedFile.setFileContent(fileContent);
}
return !blackboard.getGroupedFiles().isEmpty();
}
Aggregations