Przeglądaj źródła

Add testing capabilities.

Sebastian Hahner 5 lat temu
rodzic
commit
b2b72e9577

+ 2 - 0
jplag/src/main/java/jplag/strategy/NormalComparisonStrategy.java

@@ -39,6 +39,8 @@ public class NormalComparisonStrategy extends AbstractComparisonStrategy {
                     continue;
                     continue;
                 }
                 }
                 comparison = greedyStringTiling.compare(first, second);
                 comparison = greedyStringTiling.compare(first, second);
+
+                // TODO SH: Why does this differ from the results shown in the result web page?
                 System.out.println("Comparing " + first.name + "-" + second.name + ": " + comparison.percent());
                 System.out.println("Comparing " + first.name + "-" + second.name + ": " + comparison.percent());
                 if (baseCodeSubmission != null) {
                 if (baseCodeSubmission != null) {
                     comparison.bcMatchesA = baseCodeMatches.get(comparison.firstSubmission.name);
                     comparison.bcMatchesA = baseCodeMatches.get(comparison.firstSubmission.name);

+ 19 - 0
jplag/src/test/java/jplag/NormalComparisonTests.java

@@ -0,0 +1,19 @@
+package jplag;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class NormalComparisonTests extends TestBase {
+
+    @Test
+    public void testSimpleDuplicate() throws ExitException {
+        JPlagResult result = runJPlagWithDefaultOptions("SimpleDuplicate");
+
+        assertEquals(2, result.getNumberOfSubmissions());
+        assertEquals(1, result.getComparisons().size());
+        assertEquals(1, result.getComparisons().get(0).matches.size());
+        assertEquals(1, result.getSimilarityDistribution()[6]);
+    }
+
+}

+ 17 - 0
jplag/src/test/java/jplag/TestBase.java

@@ -0,0 +1,17 @@
+package jplag;
+
+import jplag.options.JPlagOptions;
+import jplag.options.LanguageOption;
+
+public abstract class TestBase {
+
+    protected JPlagResult runJPlagWithDefaultOptions(String testSampleName) throws ExitException {
+        JPlagOptions options = new JPlagOptions(
+                String.format("src/test/resources/samples/%s", testSampleName),
+                LanguageOption.JAVA_1_9);
+
+        JPlag jplag = new JPlag(options);
+        return jplag.run();
+    }
+
+}

+ 11 - 0
jplag/src/test/resources/samples/SimpleDuplicate/A/SimpleDuplicate.java

@@ -0,0 +1,11 @@
+public class SimpleDuplicate {
+
+    public static void main(String[] args) {
+        System.out.println("Hello World!");
+
+        for(int i = 0; i < 10; i++) {
+            System.out.println("Number is " + i);
+        }
+    }
+
+}

+ 12 - 0
jplag/src/test/resources/samples/SimpleDuplicate/B/SimpleDuplicate.java

@@ -0,0 +1,12 @@
+public class SimpleDuplicate {
+
+    public static void main(String[] args) {
+        System.out.println("Hello Plagiarism!");
+
+        int max = 10;
+        for(int j = 0; j < max; j++) {
+            System.out.println("Number is " + j);
+        }
+    }
+
+}