use of de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult in project Artemis by ls1intum.
the class ModelingPlagiarismDetectionService method checkPlagiarism.
/**
* Convenience method to extract all latest submissions from a ModelingExercise and compute pair-wise distances.
*
* @param exerciseWithParticipationsSubmissionsResults Text Exercise with fetched participations and submissions
* @param minimumSimilarity the minimum similarity so that the result is considered
* @param minimumModelSize the minimum number of model elements to be considered as plagiarism
* @param minimumScore the minimum result score (if available) to be considered as plagiarism
* @return List of submission id pairs and similarity score
*/
public ModelingPlagiarismResult checkPlagiarism(ModelingExercise exerciseWithParticipationsSubmissionsResults, double minimumSimilarity, int minimumModelSize, int minimumScore) {
final List<ModelingSubmission> modelingSubmissions = modelingSubmissionsForComparison(exerciseWithParticipationsSubmissionsResults);
log.info("Found {} modeling submissions in exercise {}", modelingSubmissions.size(), exerciseWithParticipationsSubmissionsResults.getId());
Long exerciseId = exerciseWithParticipationsSubmissionsResults.getId();
ModelingPlagiarismResult result = checkPlagiarism(modelingSubmissions, minimumSimilarity, minimumModelSize, minimumScore, exerciseId);
result.setExercise(exerciseWithParticipationsSubmissionsResults);
return result;
}
use of de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult in project Artemis by ls1intum.
the class ModelingExerciseIntegrationTest method testGetPlagiarismResult.
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void testGetPlagiarismResult() throws Exception {
final Course course = database.addCourseWithOneModelingExercise();
ModelingExercise modelingExercise = modelingExerciseRepository.findByCourseIdWithCategories(course.getId()).get(0);
ModelingPlagiarismResult expectedResult = database.createModelingPlagiarismResultForExercise(modelingExercise);
ModelingPlagiarismResult result = request.get("/api/modeling-exercises/" + modelingExercise.getId() + "/plagiarism-result", HttpStatus.OK, ModelingPlagiarismResult.class);
assertThat(result.getId()).isEqualTo(expectedResult.getId());
}
use of de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult in project Artemis by ls1intum.
the class DatabaseUtilService method createModelingPlagiarismResultForExercise.
public ModelingPlagiarismResult createModelingPlagiarismResultForExercise(Exercise exercise) {
ModelingPlagiarismResult result = new ModelingPlagiarismResult();
result.setExercise(exercise);
result.setSimilarityDistribution(new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 });
result.setDuration(4);
return plagiarismResultRepo.save(result);
}
use of de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult in project ArTEMiS by ls1intum.
the class DatabaseUtilService method createModelingPlagiarismResultForExercise.
public ModelingPlagiarismResult createModelingPlagiarismResultForExercise(Exercise exercise) {
ModelingPlagiarismResult result = new ModelingPlagiarismResult();
result.setExercise(exercise);
result.setSimilarityDistribution(new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 });
result.setDuration(4);
return plagiarismResultRepo.save(result);
}
Aggregations