use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.
the class AssessmentServiceTest method createModelingExerciseSubmissionAndCalculateScore.
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createModelingExerciseSubmissionAndCalculateScore() {
ModelingExercise exercise = createModelingExerciseWithSGI(course1);
Submission submissionWithoutResult = new ModelingSubmission();
submissionWithoutResult.setSubmissionDate(pastTimestamp.plusMinutes(3L));
submissionWithoutResult = database.addSubmission(exercise, submissionWithoutResult, "student1");
database.addSubmission((StudentParticipation) submissionWithoutResult.getParticipation(), submissionWithoutResult);
List<Feedback> feedbacks = createFeedback(exercise);
var result = new Result();
result.setSubmission(submissionWithoutResult);
result.setFeedbacks(feedbacks);
result.setParticipation(submissionWithoutResult.getParticipation());
submissionWithoutResult.addResult(result);
resultRepository.submitResult(result, exercise, exerciseDateService.getDueDate(result.getParticipation()));
resultRepository.save(result);
assertThat(result.getResultString()).isEqualTo("6 of 7 points");
}
use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.
the class ResultServiceIntegrationTest method createExampleResult.
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createExampleResult() throws Exception {
var modelingSubmission = database.addSubmission(modelingExercise, new ModelingSubmission(), "student1");
var exampleSubmission = ModelFactory.generateExampleSubmission(modelingSubmission, modelingExercise, false);
exampleSubmission = database.addExampleSubmission(exampleSubmission);
modelingSubmission.setExampleSubmission(true);
submissionRepository.save(modelingSubmission);
request.postWithResponseBody("/api/exercises/" + modelingExercise.getId() + "/example-submissions/" + modelingSubmission.getId() + "/example-results", exampleSubmission, Result.class, HttpStatus.CREATED);
}
use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.
the class ResultServiceIntegrationTest method createExampleResult_notExampleSubmission.
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createExampleResult_notExampleSubmission() throws Exception {
var modelingSubmission = database.addSubmission(modelingExercise, new ModelingSubmission(), "student1");
var exampleSubmission = ModelFactory.generateExampleSubmission(modelingSubmission, modelingExercise, false);
exampleSubmission = database.addExampleSubmission(exampleSubmission);
modelingSubmission.setExampleSubmission(false);
submissionRepository.save(modelingSubmission);
request.postWithResponseBody("/api/exercises/" + modelingExercise.getId() + "/example-submissions/" + modelingSubmission.getId() + "/example-results", exampleSubmission, Result.class, HttpStatus.INTERNAL_SERVER_ERROR);
}
use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.
the class ResultServiceIntegrationTest method createExampleResult_wrongExerciseId.
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createExampleResult_wrongExerciseId() throws Exception {
var modelingSubmission = database.addSubmission(modelingExercise, new ModelingSubmission(), "student1");
var exampleSubmission = ModelFactory.generateExampleSubmission(modelingSubmission, modelingExercise, false);
exampleSubmission = database.addExampleSubmission(exampleSubmission);
modelingSubmission.setExampleSubmission(true);
submissionRepository.save(modelingSubmission);
long randomId = 1874;
request.postWithResponseBody("/api/exercises/" + randomId + "/example-submissions/" + modelingSubmission.getId() + "/example-results", exampleSubmission, Result.class, HttpStatus.BAD_REQUEST);
}
use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project Artemis by ls1intum.
the class CompassService method build.
/**
* Builds and saves the clusters
* Does not build clusters if there is already a cluster for given exercise
*
* @param modelingExercise the exercise to build clusters for
*/
public void build(ModelingExercise modelingExercise) {
long start = System.nanoTime();
if (!isSupported(modelingExercise)) {
return;
}
List<ModelCluster> currentClusters = modelClusterRepository.findAllByExerciseIdWithEagerElements(modelingExercise.getId());
if (!currentClusters.isEmpty()) {
log.info("Clusters have already been built. First delete existing clusters and then rebuild them!");
// Do not build submissions if this process has already been done before
return;
}
List<ModelingSubmission> submissions = modelingSubmissionRepository.findSubmittedByExerciseIdWithEagerResultsAndFeedback(modelingExercise.getId());
log.info("ModelCluster: start building clusters of {} submissions for modeling exercise {}", submissions.size(), modelingExercise.getId());
ModelClusterFactory clusterFactory = new ModelClusterFactory();
List<ModelCluster> modelClusters = clusterFactory.buildClusters(submissions, modelingExercise);
log.info("ModelClusterTimeLog: building clusters of {} submissions for modeling exercise {} done in {}", submissions.size(), modelingExercise.getId(), TimeLogUtil.formatDurationFrom(start));
modelClusterRepository.saveAll(modelClusters);
modelElementRepository.saveAll(modelClusters.stream().flatMap(modelCluster -> modelCluster.getModelElements().stream()).collect(Collectors.toList()));
log.info("ModelClusterTimeLog: building and saving clusters of {} submissions for exercise {} done in {}", submissions.size(), modelingExercise.getId(), TimeLogUtil.formatDurationFrom(start));
}
Aggregations