Search in sources :

Example 11 with ModelingPlagiarismResult

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;
}
Also used : ModelingPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult) ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission)

Example 12 with ModelingPlagiarismResult

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());
}
Also used : ModelingPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult) ModelingExercise(de.tum.in.www1.artemis.domain.modeling.ModelingExercise) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 13 with ModelingPlagiarismResult

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);
}
Also used : ModelingPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)

Example 14 with ModelingPlagiarismResult

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);
}
Also used : ModelingPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)

Aggregations

ModelingPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)12 ModelingExercise (de.tum.in.www1.artemis.domain.modeling.ModelingExercise)6 ModelingSubmission (de.tum.in.www1.artemis.domain.modeling.ModelingSubmission)4 Test (org.junit.jupiter.api.Test)4 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)4 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)4 WithMockUser (org.springframework.security.test.context.support.WithMockUser)4 ObjectMapper (com.fasterxml.jackson.databind.ObjectMapper)2 JsonParser.parseString (com.google.gson.JsonParser.parseString)2 PlagiarismCheckState (de.tum.in.www1.artemis.domain.PlagiarismCheckState)2 Participation (de.tum.in.www1.artemis.domain.participation.Participation)2 PlagiarismComparison (de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison)2 PlagiarismSubmission (de.tum.in.www1.artemis.domain.plagiarism.PlagiarismSubmission)2 ModelingSubmissionElement (de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingSubmissionElement)2 UMLDiagram (de.tum.in.www1.artemis.service.compass.umlmodel.UMLDiagram)2 UMLModelParser (de.tum.in.www1.artemis.service.compass.umlmodel.parsers.UMLModelParser)2 FeatureToggle (de.tum.in.www1.artemis.service.feature.FeatureToggle)2 IOException (java.io.IOException)2 java.util (java.util)2 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)2