From bfae73fb38d83598aa85c165e5888c9852a102b7 Mon Sep 17 00:00:00 2001 From: Patrick Thiel Date: Sun, 28 Aug 2022 09:44:22 -0700 Subject: [PATCH 1/3] extended the README.md file by the documentation for extending options and comparison values --- jplag.endtoend-testing/README.md | 62 +++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/jplag.endtoend-testing/README.md b/jplag.endtoend-testing/README.md index 12fef22c6..166296bd2 100644 --- a/jplag.endtoend-testing/README.md +++ b/jplag.endtoend-testing/README.md @@ -1,3 +1,4 @@ + # JPlag - End To End Testing With the help of the end-to-end module, changes to the detection of JPlag are to be tested. With the help of elaborated plagiarisms, which have been worked out from suggestions in the literature on the topic of "plagiarism detection and avoidance", a wide range of detectable change can be covered. The selected plagiarisms are the decisive factor here as to whether a change in recognition can be perceived. @@ -67,7 +68,7 @@ In order to be able to distinguish in which domain of the recognition changes ha The comparative values were discussed and tested. The following results of the JPlag scan are used for the comparison: 1. minimal similarity as `float` 2. maximum similarity as `float` -3. matched token numbe as `int` +3. matched token number as `int` The comparative values were disscussed and elaborated in the issue [End to end testing - "comparative values"](https://github.com/jplag/JPlag/issues/548 "End to end testing - \"comparative values\""). @@ -172,3 +173,62 @@ It is important to note that the resource folder name must be exactly the same a - Scala with "scala" Once the tests have been run for the first time, the information for the tests is stored in the folder `..\target\testing-directory-submission\LANGUAGE`. This data can be copied to the path `[...]\resources\results\LANGUAGE`. Each subdirectory gets its own result json file as `[...]\resources\results\JAVA\sortAlgo.json`. Once the test data has been copied, the endToEnd tests can be successfully tested. As soon as a change in the detection takes place, the results will differ from the stored results and the tests will fail if the results have changed. + +### Extending The Comparison Value + +As already described, the current comparisons in the end to end test treat the values of `minimal similarity`, `maximum similarity` and `matched token number`. +As soon as there is a need to extend these comparison values, this section describes how this can be achieved. +Beforehand, however, this should be discussed in a new issue about this need. + +- For new comparison values these properties must be extended in the `ExpectedResult` record at the package `de.jplag.endtoend.model`. Here it is sufficient to add the values in the record and to enter the json name as `@JsonProperty("json_name")`. + +``` java +public record ExpectedResult( + @JsonProperty("minimal_similarity") float resultSimilarityMinimum, + @JsonProperty("maximum_similarity") float resultSimilarityMaximum, + @JsonProperty("matched_token_number") int resultMatchedTokenNumber) { +} +``` + +- In order to be able to include the new value in the tests, they must be added to the `EndToEndSuiteTest` as a comparison operation at the package `de.jplag.endtoend`. The `runJPlagTestSuite()` function provided for this purpose must be extended to include the new comparison value. To do this, create the comparison as shown in the code example below. + +``` java +[...] + if (Float.compare(result.resultSimilarityMaximum(), jPlagComparison.maximalSimilarity()) != 0) { + addToValidationErrors("maximalSimilarity", String.valueOf(result.resultSimilarityMaximum()), + String.valueOf(jPlagComparison.maximalSimilarity())); + } +[...] +``` + +- Once the tests run the first time they will fail due to the missing values in the old json result file used for the test cases. The old results must then be replaced with the new ones. +For this purpose, the last section of the chapter [Copying Plagiarism To The Resources](#copying-plagiarism-to-the-resources) can be used as help. + +### Extending JPlar Test Run Options +The endToEnd tests support the possible scan options of the JPlag api. Currently `minimumTokenMatch` is used in the endToEnd tests. These values are also stored in the json as configuration to keep the test cases at the options apart. Likewise also changes of the logic in the different options are to be determined to be able. + +- To extend new options to the endToEnd tests they have to be added to the record object `Options` in the package `de.jplag.endtoend.model`. Here it is sufficient to add the values in the record and to enter the json name as `@JsonProperty("json_name")`. + +``` java +public record Options( +@JsonProperty("minimum_token_match") Integer minimumTokenMatch) { +} +``` + +- After the new value has been added to the record, the creation of the object must now also be adjusted in the `EndToEndSuiteTest` . The 'setRunOptions' function is provided for this purpose. The options can be added in any order and combination. It should be noted that each test case is run with these options. + +``` java + private void setRunOptions() { + options = new ArrayList<>(); + options.add(new Options(1)); + options.add(new Options(15)); + } +``` + +- If you want to create individual test cases by testing the options only on a specific set of dates, a new test case must be created for this purpose. For the new test cases, the options in the transfer parameters can be adjusted and specified. This can then be tested with the function `runTests`. + ```java + runTests(directoryName, option, currentLanguageIdentifier, testCase, currentResultDescription); +``` + +- Once the tests run the first time they will fail due to the missing values in the old json result file used for the test cases. The old results must then be replaced with the new ones. +For this purpose, the last section of the chapter [Copying Plagiarism To The Resources](#copying-plagiarism-to-the-resources) can be used as help. \ No newline at end of file From 7abffa548b317144c1404a9a4c4161bc8b6a0902 Mon Sep 17 00:00:00 2001 From: Patrick Thiel Date: Wed, 7 Sep 2022 02:44:22 -0700 Subject: [PATCH 2/3] Change the options to 9 and 3, depending on the current discussion about the default settings. --- .../de/jplag/endtoend/EndToEndSuiteTest.java | 4 +- .../java/sortAlgo/SortAlgo4d1.java | 2 +- .../java/sortAlgo/SortAlgo7.java | 20 +- .../test/resources/results/java/sortAlgo.json | 1944 ++++++++--------- 4 files changed, 990 insertions(+), 980 deletions(-) diff --git a/jplag.endtoend-testing/src/test/java/de/jplag/endtoend/EndToEndSuiteTest.java b/jplag.endtoend-testing/src/test/java/de/jplag/endtoend/EndToEndSuiteTest.java index 7db516ef0..1e4d93e32 100644 --- a/jplag.endtoend-testing/src/test/java/de/jplag/endtoend/EndToEndSuiteTest.java +++ b/jplag.endtoend-testing/src/test/java/de/jplag/endtoend/EndToEndSuiteTest.java @@ -59,8 +59,8 @@ public EndToEndSuiteTest() throws IOException { */ private void setRunOptions() { options = new ArrayList<>(); - options.add(new Options(1)); - options.add(new Options(15)); + options.add(new Options(9)); + options.add(new Options(3)); } /** diff --git a/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo4d1.java b/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo4d1.java index e808024a8..545c48478 100644 --- a/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo4d1.java +++ b/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo4d1.java @@ -1,4 +1,4 @@ -public class SortAlgo2 { +public class SortAlgo4 { private int firstCounter; private int arrayLenght; private int swapVarI; diff --git a/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo7.java b/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo7.java index 9fb89a598..d60ad4c2f 100644 --- a/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo7.java +++ b/jplag.endtoend-testing/src/test/resources/languageTestFiles/java/sortAlgo/SortAlgo7.java @@ -8,8 +8,8 @@ public void BubbleSortRecursion(Integer arr[], int n) { return; for (int i = 0; i < n - 1; i++) { - if (arr[i] > arr[i + 1]) { - swap(arr, i, i + 1); + if (arr[i] > arr[add(i , 1)]) { + swap(arr, i, add(i , 1)); } } BubbleSortRecursion(arr, n - 1); @@ -17,9 +17,9 @@ public void BubbleSortRecursion(Integer arr[], int n) { public void BubbleSortWithoutRecursion(Integer arr[]) { for (int i = arr.length; i > 1; i--) { - for (int innerCounter = 0; innerCounter < arr.length - 1; innerCounter++) { - if (arr[innerCounter] > arr[innerCounter + 1]) { - swap(arr, innerCounter, (innerCounter + 1)); + for (int innerCounter = 0; innerCounter < subtract(arr.length, 1); innerCounter++) { + if (arr[innerCounter] > arr[add(innerCounter , 1)]) { + swap(arr, innerCounter, add(innerCounter , 1)); } } } @@ -30,4 +30,14 @@ private final void swap(T[] arr, int i, int j) { arr[i] = arr[j]; arr[j] = t; } + + private int add(int value1, int value2) + { + return value1 + value2; + } + + private int subtract(int value1, int value2) + { + return value1 - value2; + } } diff --git a/jplag.endtoend-testing/src/test/resources/results/java/sortAlgo.json b/jplag.endtoend-testing/src/test/resources/results/java/sortAlgo.json index c80778fa1..45aa21ec2 100644 --- a/jplag.endtoend-testing/src/test/resources/results/java/sortAlgo.json +++ b/jplag.endtoend-testing/src/test/resources/results/java/sortAlgo.json @@ -1,42 +1,42 @@ [ { "options" : { - "minimum_token_match" : 1 + "minimum_token_match" : 9 }, "tests" : { "SortAlgo-SortAlgo5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo-SortAlgo6" : { - "minimal_similarity" : 83.58209, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 43.28358, + "maximum_similarity" : 51.785713, + "matched_token_number" : 29 }, "SortAlgo-SortAlgo7" : { - "minimal_similarity" : 96.42857, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 49.315067, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo3_5-SortAlgo3_6" : { - "minimal_similarity" : 78.666664, - "maximum_similarity" : 85.50725, - "matched_token_number" : 59 + "minimal_similarity" : 16.0, + "maximum_similarity" : 17.391304, + "matched_token_number" : 12 }, "SortAlgo6-SortAlgo7" : { - "minimal_similarity" : 80.597015, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 35.61644, + "maximum_similarity" : 38.80597, + "matched_token_number" : 26 }, "SortAlgo1_3-SortAlgo7" : { - "minimal_similarity" : 72.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 36.0, + "maximum_similarity" : 36.9863, + "matched_token_number" : 27 }, "SortAlgo1_3-SortAlgo6" : { - "minimal_similarity" : 85.333336, - "maximum_similarity" : 95.522385, - "matched_token_number" : 64 + "minimal_similarity" : 32.0, + "maximum_similarity" : 35.820896, + "matched_token_number" : 24 }, "SortAlgo-SortAlgo1" : { "minimal_similarity" : 100.0, @@ -44,9 +44,9 @@ "matched_token_number" : 56 }, "SortAlgo1_3-SortAlgo3" : { - "minimal_similarity" : 92.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 69 + "minimal_similarity" : 72.0, + "maximum_similarity" : 78.26087, + "matched_token_number" : 54 }, "SortAlgo-SortAlgo2" : { "minimal_similarity" : 100.0, @@ -54,34 +54,34 @@ "matched_token_number" : 56 }, "SortAlgo1_3-SortAlgo2" : { - "minimal_similarity" : 74.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 53.333332, + "maximum_similarity" : 71.42857, + "matched_token_number" : 40 }, "SortAlgo-SortAlgo3" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 57.971016, + "maximum_similarity" : 71.42857, + "matched_token_number" : 40 }, "SortAlgo1_3-SortAlgo5" : { - "minimal_similarity" : 62.666668, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 12.0, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo-SortAlgo4" : { - "minimal_similarity" : 94.91525, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 71.18644, + "maximum_similarity" : 75.0, + "matched_token_number" : 42 }, "SortAlgo1_3-SortAlgo4" : { - "minimal_similarity" : 77.333336, - "maximum_similarity" : 98.305084, - "matched_token_number" : 58 + "minimal_similarity" : 37.333332, + "maximum_similarity" : 47.457626, + "matched_token_number" : 28 }, "SortAlgo2-SortAlgo2_5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1_2-SortAlgo2" : { "minimal_similarity" : 73.68421, @@ -89,169 +89,169 @@ "matched_token_number" : 56 }, "SortAlgo1_2-SortAlgo3" : { - "minimal_similarity" : 82.89474, - "maximum_similarity" : 91.304344, - "matched_token_number" : 63 + "minimal_similarity" : 52.63158, + "maximum_similarity" : 57.971016, + "matched_token_number" : 40 }, "SortAlgo5-SortAlgo6" : { - "minimal_similarity" : 70.149254, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 13.432836, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_2-SortAlgo4" : { - "minimal_similarity" : 76.31579, - "maximum_similarity" : 98.305084, - "matched_token_number" : 58 + "minimal_similarity" : 63.157894, + "maximum_similarity" : 81.355934, + "matched_token_number" : 48 }, "SortAlgo5-SortAlgo7" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 85.18519, - "matched_token_number" : 46 + "minimal_similarity" : 17.80822, + "maximum_similarity" : 23.214285, + "matched_token_number" : 13 }, "SortAlgo1_2-SortAlgo5" : { - "minimal_similarity" : 61.842106, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 18.421053, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1_2-SortAlgo6" : { - "minimal_similarity" : 84.210526, - "maximum_similarity" : 95.522385, - "matched_token_number" : 64 + "minimal_similarity" : 50.0, + "maximum_similarity" : 56.71642, + "matched_token_number" : 38 }, "SortAlgo1_2-SortAlgo7" : { - "minimal_similarity" : 71.052635, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 47.36842, + "maximum_similarity" : 49.315067, + "matched_token_number" : 36 }, "SortAlgo1-SortAlgo2_5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1_3-SortAlgo3_6" : { - "minimal_similarity" : 93.333336, - "maximum_similarity" : 93.333336, - "matched_token_number" : 70 + "minimal_similarity" : 32.0, + "maximum_similarity" : 32.0, + "matched_token_number" : 24 }, "SortAlgo4-SortAlgo5" : { - "minimal_similarity" : 77.9661, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 23.728813, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo4-SortAlgo6" : { - "minimal_similarity" : 88.0597, - "maximum_similarity" : 100.0, - "matched_token_number" : 59 + "minimal_similarity" : 44.77612, + "maximum_similarity" : 50.847458, + "matched_token_number" : 30 }, "SortAlgo1_4-SortAlgo3_5" : { - "minimal_similarity" : 72.46377, - "maximum_similarity" : 84.745766, - "matched_token_number" : 50 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 15.254237, + "matched_token_number" : 9 }, "SortAlgo4-SortAlgo7" : { - "minimal_similarity" : 91.52542, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 17.80822, + "maximum_similarity" : 22.033897, + "matched_token_number" : 13 }, "SortAlgo1_4-SortAlgo3_6" : { - "minimal_similarity" : 78.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 59 + "minimal_similarity" : 32.0, + "maximum_similarity" : 40.677967, + "matched_token_number" : 24 }, "SortAlgo1_5-SortAlgo3_6" : { - "minimal_similarity" : 62.666668, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 12.0, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_5-SortAlgo3_5" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 59.420288, + "maximum_similarity" : 73.21429, + "matched_token_number" : 41 }, "SortAlgo1_6-SortAlgo3_5" : { - "minimal_similarity" : 73.91304, - "maximum_similarity" : 85.0, - "matched_token_number" : 51 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 15.0, + "matched_token_number" : 9 }, "SortAlgo-SortAlgo4d3" : { - "minimal_similarity" : 90.32258, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 70.96774, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo1_6-SortAlgo3_6" : { - "minimal_similarity" : 80.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 60 + "minimal_similarity" : 57.333332, + "maximum_similarity" : 71.666664, + "matched_token_number" : 43 }, "SortAlgo-SortAlgo4d2" : { - "minimal_similarity" : 87.5, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 68.75, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo-SortAlgo4d1" : { - "minimal_similarity" : 87.30159, - "maximum_similarity" : 98.21429, - "matched_token_number" : 55 + "minimal_similarity" : 69.84127, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo1_4-SortAlgo3" : { - "minimal_similarity" : 84.05797, - "maximum_similarity" : 98.305084, - "matched_token_number" : 58 + "minimal_similarity" : 49.275364, + "maximum_similarity" : 57.627117, + "matched_token_number" : 34 }, "SortAlgo3-SortAlgo3_5" : { - "minimal_similarity" : 85.50725, - "maximum_similarity" : 85.50725, - "matched_token_number" : 59 + "minimal_similarity" : 17.391304, + "maximum_similarity" : 17.391304, + "matched_token_number" : 12 }, "SortAlgo1_4-SortAlgo4" : { - "minimal_similarity" : 100.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 59 - }, - "SortAlgo1_4-SortAlgo2" : { "minimal_similarity" : 94.91525, - "maximum_similarity" : 100.0, + "maximum_similarity" : 94.91525, "matched_token_number" : 56 }, + "SortAlgo1_4-SortAlgo2" : { + "minimal_similarity" : 69.49152, + "maximum_similarity" : 73.21429, + "matched_token_number" : 41 + }, "SortAlgo3-SortAlgo3_6" : { - "minimal_similarity" : 92.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 69 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 75.36232, + "matched_token_number" : 52 }, "SortAlgo1_4-SortAlgo7" : { - "minimal_similarity" : 91.52542, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 32.876713, + "maximum_similarity" : 40.677967, + "matched_token_number" : 24 }, "SortAlgo1_4-SortAlgo5" : { - "minimal_similarity" : 77.9661, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 22.033897, + "maximum_similarity" : 23.214285, + "matched_token_number" : 13 }, "SortAlgo2-SortAlgo3_5" : { - "minimal_similarity" : 72.46377, - "maximum_similarity" : 89.28571, - "matched_token_number" : 50 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_4-SortAlgo6" : { - "minimal_similarity" : 88.0597, - "maximum_similarity" : 100.0, - "matched_token_number" : 59 + "minimal_similarity" : 53.731342, + "maximum_similarity" : 61.01695, + "matched_token_number" : 36 }, "SortAlgo2-SortAlgo3_6" : { - "minimal_similarity" : 74.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 32.0, + "maximum_similarity" : 42.857143, + "matched_token_number" : 24 }, "SortAlgo1-SortAlgo3_6" : { - "minimal_similarity" : 74.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 32.0, + "maximum_similarity" : 42.857143, + "matched_token_number" : 24 }, "SortAlgo1-SortAlgo3_5" : { - "minimal_similarity" : 72.46377, - "maximum_similarity" : 89.28571, - "matched_token_number" : 50 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo-SortAlgo1_2" : { "minimal_similarity" : 73.68421, @@ -259,69 +259,69 @@ "matched_token_number" : 56 }, "SortAlgo1_3-SortAlgo3_5" : { - "minimal_similarity" : 80.0, - "maximum_similarity" : 86.95652, - "matched_token_number" : 60 + "minimal_similarity" : 24.0, + "maximum_similarity" : 26.086956, + "matched_token_number" : 18 }, "SortAlgo1_2-SortAlgo3_5" : { - "minimal_similarity" : 72.36842, - "maximum_similarity" : 79.710144, - "matched_token_number" : 55 + "minimal_similarity" : 11.842105, + "maximum_similarity" : 13.043478, + "matched_token_number" : 9 }, "SortAlgo1_2-SortAlgo3_6" : { - "minimal_similarity" : 88.1579, - "maximum_similarity" : 89.333336, - "matched_token_number" : 67 + "minimal_similarity" : 31.578947, + "maximum_similarity" : 32.0, + "matched_token_number" : 24 }, "SortAlgo-SortAlgo1_6" : { - "minimal_similarity" : 93.333336, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 56.666668, + "maximum_similarity" : 60.714287, + "matched_token_number" : 34 }, "SortAlgo-SortAlgo1_5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo-SortAlgo1_4" : { - "minimal_similarity" : 94.91525, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 69.49152, + "maximum_similarity" : 73.21429, + "matched_token_number" : 41 }, "SortAlgo-SortAlgo1_3" : { - "minimal_similarity" : 74.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 53.333332, + "maximum_similarity" : 71.42857, + "matched_token_number" : 40 }, "SortAlgo1_6-SortAlgo4d1" : { - "minimal_similarity" : 88.888885, - "maximum_similarity" : 93.333336, - "matched_token_number" : 56 + "minimal_similarity" : 36.50794, + "maximum_similarity" : 38.333332, + "matched_token_number" : 23 }, "SortAlgo4d2-SortAlgo7" : { - "minimal_similarity" : 84.375, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 35.61644, + "maximum_similarity" : 40.625, + "matched_token_number" : 26 }, "SortAlgo1_6-SortAlgo4d2" : { - "minimal_similarity" : 89.0625, - "maximum_similarity" : 95.0, - "matched_token_number" : 57 + "minimal_similarity" : 35.9375, + "maximum_similarity" : 38.333332, + "matched_token_number" : 23 }, "SortAlgo4d2-SortAlgo5" : { - "minimal_similarity" : 73.4375, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo4d2-SortAlgo6" : { - "minimal_similarity" : 89.55224, - "maximum_similarity" : 93.75, - "matched_token_number" : 60 + "minimal_similarity" : 34.328358, + "maximum_similarity" : 35.9375, + "matched_token_number" : 23 }, "SortAlgo1_6-SortAlgo4d3" : { - "minimal_similarity" : 91.935486, - "maximum_similarity" : 95.0, - "matched_token_number" : 57 + "minimal_similarity" : 37.096775, + "maximum_similarity" : 38.333332, + "matched_token_number" : 23 }, "SortAlgo1_5-SortAlgo2_5" : { "minimal_similarity" : 100.0, @@ -329,94 +329,94 @@ "matched_token_number" : 56 }, "SortAlgo1_2-SortAlgo4d1" : { - "minimal_similarity" : 76.31579, - "maximum_similarity" : 92.06349, - "matched_token_number" : 58 + "minimal_similarity" : 57.894737, + "maximum_similarity" : 69.84127, + "matched_token_number" : 44 }, "SortAlgo1_3-SortAlgo4d3" : { - "minimal_similarity" : 82.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 62 + "minimal_similarity" : 53.333332, + "maximum_similarity" : 64.51613, + "matched_token_number" : 40 }, "SortAlgo2-SortAlgo3" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 57.971016, + "maximum_similarity" : 71.42857, + "matched_token_number" : 40 }, "SortAlgo1_2-SortAlgo4d2" : { - "minimal_similarity" : 77.63158, - "maximum_similarity" : 92.1875, - "matched_token_number" : 59 + "minimal_similarity" : 57.894737, + "maximum_similarity" : 68.75, + "matched_token_number" : 44 }, "SortAlgo1_3-SortAlgo4d2" : { - "minimal_similarity" : 85.333336, - "maximum_similarity" : 100.0, - "matched_token_number" : 64 + "minimal_similarity" : 53.333332, + "maximum_similarity" : 62.5, + "matched_token_number" : 40 }, "SortAlgo2-SortAlgo4" : { - "minimal_similarity" : 94.91525, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 71.18644, + "maximum_similarity" : 75.0, + "matched_token_number" : 42 }, "SortAlgo1_6-SortAlgo2_5" : { - "minimal_similarity" : 76.666664, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 23.333334, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1_4-SortAlgo4d1" : { - "minimal_similarity" : 87.30159, - "maximum_similarity" : 93.22034, - "matched_token_number" : 55 + "minimal_similarity" : 52.38095, + "maximum_similarity" : 55.932205, + "matched_token_number" : 33 }, "SortAlgo1_5-SortAlgo4d3" : { - "minimal_similarity" : 75.80645, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo1_4-SortAlgo4d2" : { - "minimal_similarity" : 87.5, - "maximum_similarity" : 94.91525, - "matched_token_number" : 56 + "minimal_similarity" : 51.5625, + "maximum_similarity" : 55.932205, + "matched_token_number" : 33 }, "SortAlgo1_5-SortAlgo4d2" : { - "minimal_similarity" : 73.4375, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo1_4-SortAlgo4d3" : { - "minimal_similarity" : 90.32258, - "maximum_similarity" : 94.91525, - "matched_token_number" : 56 + "minimal_similarity" : 53.225807, + "maximum_similarity" : 55.932205, + "matched_token_number" : 33 }, "SortAlgo1_5-SortAlgo4d1" : { - "minimal_similarity" : 73.01588, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo4d2-SortAlgo4d3" : { - "minimal_similarity" : 96.875, - "maximum_similarity" : 100.0, - "matched_token_number" : 62 + "minimal_similarity" : 93.75, + "maximum_similarity" : 96.77419, + "matched_token_number" : 60 }, "SortAlgo2-SortAlgo7" : { - "minimal_similarity" : 96.42857, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 49.315067, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo1_2-SortAlgo4d3" : { - "minimal_similarity" : 76.31579, - "maximum_similarity" : 93.548386, - "matched_token_number" : 58 + "minimal_similarity" : 57.894737, + "maximum_similarity" : 70.96774, + "matched_token_number" : 44 }, "SortAlgo1_3-SortAlgo4d1" : { - "minimal_similarity" : 84.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 63 + "minimal_similarity" : 53.333332, + "maximum_similarity" : 63.49206, + "matched_token_number" : 40 }, "SortAlgo2-SortAlgo5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo4d1-SortAlgo4d2" : { "minimal_similarity" : 98.4375, @@ -424,74 +424,74 @@ "matched_token_number" : 63 }, "SortAlgo2-SortAlgo6" : { - "minimal_similarity" : 83.58209, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 43.28358, + "maximum_similarity" : 51.785713, + "matched_token_number" : 29 }, "SortAlgo4d1-SortAlgo4d3" : { - "minimal_similarity" : 96.82539, - "maximum_similarity" : 98.3871, - "matched_token_number" : 61 + "minimal_similarity" : 95.2381, + "maximum_similarity" : 96.77419, + "matched_token_number" : 60 }, "SortAlgo1_6-SortAlgo7" : { - "minimal_similarity" : 90.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 41.09589, + "maximum_similarity" : 50.0, + "matched_token_number" : 30 }, "SortAlgo2_5-SortAlgo3_5" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 59.420288, + "maximum_similarity" : 73.21429, + "matched_token_number" : 41 }, "SortAlgo3_6-SortAlgo6" : { - "minimal_similarity" : 89.333336, - "maximum_similarity" : 100.0, - "matched_token_number" : 67 + "minimal_similarity" : 73.333336, + "maximum_similarity" : 82.089554, + "matched_token_number" : 55 }, "SortAlgo2_5-SortAlgo3_6" : { - "minimal_similarity" : 62.666668, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 12.0, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo3_6-SortAlgo5" : { - "minimal_similarity" : 62.666668, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 12.0, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo3_6-SortAlgo7" : { - "minimal_similarity" : 72.0, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 21.333334, + "maximum_similarity" : 21.917809, + "matched_token_number" : 16 }, "SortAlgo4d3-SortAlgo6" : { - "minimal_similarity" : 89.55224, - "maximum_similarity" : 96.77419, - "matched_token_number" : 60 + "minimal_similarity" : 34.328358, + "maximum_similarity" : 37.096775, + "matched_token_number" : 23 }, "SortAlgo4d3-SortAlgo7" : { - "minimal_similarity" : 87.09677, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 35.61644, + "maximum_similarity" : 41.935482, + "matched_token_number" : 26 }, "SortAlgo4d3-SortAlgo5" : { - "minimal_similarity" : 75.80645, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo1_4-SortAlgo2_5" : { - "minimal_similarity" : 77.9661, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 22.033897, + "maximum_similarity" : 23.214285, + "matched_token_number" : 13 }, "SortAlgo1-SortAlgo4" : { - "minimal_similarity" : 94.91525, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 71.18644, + "maximum_similarity" : 75.0, + "matched_token_number" : 42 }, "SortAlgo1-SortAlgo5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1-SortAlgo2" : { "minimal_similarity" : 100.0, @@ -499,94 +499,94 @@ "matched_token_number" : 56 }, "SortAlgo3_6-SortAlgo4" : { - "minimal_similarity" : 78.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 59 + "minimal_similarity" : 24.0, + "maximum_similarity" : 30.508474, + "matched_token_number" : 18 }, "SortAlgo1-SortAlgo3" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 57.971016, + "maximum_similarity" : 71.42857, + "matched_token_number" : 40 }, "SortAlgo1_3-SortAlgo2_5" : { - "minimal_similarity" : 62.666668, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 12.0, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_6-SortAlgo2" : { - "minimal_similarity" : 93.333336, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 56.666668, + "maximum_similarity" : 60.714287, + "matched_token_number" : 34 }, "SortAlgo1-SortAlgo6" : { - "minimal_similarity" : 83.58209, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 43.28358, + "maximum_similarity" : 51.785713, + "matched_token_number" : 29 }, "SortAlgo1-SortAlgo7" : { - "minimal_similarity" : 96.42857, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 49.315067, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo1_2-SortAlgo2_5" : { - "minimal_similarity" : 61.842106, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 18.421053, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo-SortAlgo2_5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1_6-SortAlgo6" : { - "minimal_similarity" : 89.55224, - "maximum_similarity" : 100.0, - "matched_token_number" : 60 + "minimal_similarity" : 82.089554, + "maximum_similarity" : 91.666664, + "matched_token_number" : 55 }, "SortAlgo1_6-SortAlgo5" : { - "minimal_similarity" : 76.666664, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 23.333334, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1_6-SortAlgo4" : { - "minimal_similarity" : 98.333336, - "maximum_similarity" : 100.0, - "matched_token_number" : 59 + "minimal_similarity" : 68.333336, + "maximum_similarity" : 69.49152, + "matched_token_number" : 41 }, "SortAlgo1_6-SortAlgo3" : { - "minimal_similarity" : 85.50725, - "maximum_similarity" : 98.333336, - "matched_token_number" : 59 + "minimal_similarity" : 34.782608, + "maximum_similarity" : 40.0, + "matched_token_number" : 24 }, "SortAlgo1_5-SortAlgo6" : { - "minimal_similarity" : 70.149254, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 13.432836, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_5-SortAlgo7" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 85.18519, - "matched_token_number" : 46 + "minimal_similarity" : 17.80822, + "maximum_similarity" : 23.214285, + "matched_token_number" : 13 }, "SortAlgo2_5-SortAlgo7" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 85.18519, - "matched_token_number" : 46 + "minimal_similarity" : 17.80822, + "maximum_similarity" : 23.214285, + "matched_token_number" : 13 }, "SortAlgo1-SortAlgo4d3" : { - "minimal_similarity" : 90.32258, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 70.96774, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo1_5-SortAlgo4" : { - "minimal_similarity" : 77.9661, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 23.728813, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1-SortAlgo4d2" : { - "minimal_similarity" : 87.5, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 68.75, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo1_5-SortAlgo5" : { "minimal_similarity" : 100.0, @@ -594,149 +594,149 @@ "matched_token_number" : 56 }, "SortAlgo1-SortAlgo4d1" : { - "minimal_similarity" : 87.30159, - "maximum_similarity" : 98.21429, - "matched_token_number" : 55 + "minimal_similarity" : 69.84127, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo1_5-SortAlgo2" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo3_5-SortAlgo6" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 83.58209, - "matched_token_number" : 56 + "minimal_similarity" : 17.391304, + "maximum_similarity" : 17.910448, + "matched_token_number" : 12 }, "SortAlgo1_5-SortAlgo3" : { - "minimal_similarity" : 68.115944, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo3_5-SortAlgo7" : { - "minimal_similarity" : 69.565216, - "maximum_similarity" : 88.888885, - "matched_token_number" : 48 + "minimal_similarity" : 12.328767, + "maximum_similarity" : 13.043478, + "matched_token_number" : 9 }, "SortAlgo3-SortAlgo4d1" : { - "minimal_similarity" : 88.4058, - "maximum_similarity" : 96.82539, - "matched_token_number" : 61 + "minimal_similarity" : 56.52174, + "maximum_similarity" : 61.904762, + "matched_token_number" : 39 }, "SortAlgo3-SortAlgo4d3" : { - "minimal_similarity" : 86.95652, - "maximum_similarity" : 96.77419, - "matched_token_number" : 60 + "minimal_similarity" : 56.52174, + "maximum_similarity" : 62.903225, + "matched_token_number" : 39 }, "SortAlgo3-SortAlgo4d2" : { - "minimal_similarity" : 89.85507, - "maximum_similarity" : 96.875, - "matched_token_number" : 62 + "minimal_similarity" : 56.52174, + "maximum_similarity" : 60.9375, + "matched_token_number" : 39 }, "SortAlgo2-SortAlgo4d3" : { - "minimal_similarity" : 90.32258, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 70.96774, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo2-SortAlgo4d1" : { - "minimal_similarity" : 87.30159, - "maximum_similarity" : 98.21429, - "matched_token_number" : 55 + "minimal_similarity" : 69.84127, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo1_5-SortAlgo1_6" : { - "minimal_similarity" : 76.666664, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 23.333334, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo2-SortAlgo4d2" : { - "minimal_similarity" : 87.5, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 68.75, + "maximum_similarity" : 78.57143, + "matched_token_number" : 44 }, "SortAlgo3_6-SortAlgo4d2" : { - "minimal_similarity" : 84.0, - "maximum_similarity" : 98.4375, - "matched_token_number" : 63 + "minimal_similarity" : 30.666666, + "maximum_similarity" : 35.9375, + "matched_token_number" : 23 }, "SortAlgo4d1-SortAlgo7" : { - "minimal_similarity" : 84.12698, - "maximum_similarity" : 98.14815, - "matched_token_number" : 53 + "minimal_similarity" : 35.61644, + "maximum_similarity" : 41.26984, + "matched_token_number" : 26 }, "SortAlgo3_6-SortAlgo4d1" : { - "minimal_similarity" : 82.666664, - "maximum_similarity" : 98.4127, - "matched_token_number" : 62 + "minimal_similarity" : 30.666666, + "maximum_similarity" : 36.50794, + "matched_token_number" : 23 }, "SortAlgo4d1-SortAlgo6" : { - "minimal_similarity" : 88.0597, - "maximum_similarity" : 93.650795, - "matched_token_number" : 59 + "minimal_similarity" : 34.328358, + "maximum_similarity" : 36.50794, + "matched_token_number" : 23 }, "SortAlgo4-SortAlgo4d1" : { - "minimal_similarity" : 87.30159, - "maximum_similarity" : 93.22034, - "matched_token_number" : 55 + "minimal_similarity" : 44.444443, + "maximum_similarity" : 47.457626, + "matched_token_number" : 28 }, "SortAlgo3_6-SortAlgo4d3" : { - "minimal_similarity" : 81.333336, - "maximum_similarity" : 98.3871, - "matched_token_number" : 61 + "minimal_similarity" : 30.666666, + "maximum_similarity" : 37.096775, + "matched_token_number" : 23 }, "SortAlgo4-SortAlgo4d2" : { - "minimal_similarity" : 87.5, - "maximum_similarity" : 94.91525, - "matched_token_number" : 56 + "minimal_similarity" : 43.75, + "maximum_similarity" : 47.457626, + "matched_token_number" : 28 }, "SortAlgo4-SortAlgo4d3" : { - "minimal_similarity" : 90.32258, - "maximum_similarity" : 94.91525, - "matched_token_number" : 56 + "minimal_similarity" : 45.16129, + "maximum_similarity" : 47.457626, + "matched_token_number" : 28 }, "SortAlgo3_5-SortAlgo4" : { - "minimal_similarity" : 72.46377, - "maximum_similarity" : 84.745766, - "matched_token_number" : 50 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 15.254237, + "matched_token_number" : 9 }, "SortAlgo3_5-SortAlgo4d2" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 87.5, - "matched_token_number" : 56 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo4d1-SortAlgo5" : { - "minimal_similarity" : 73.01588, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo3_5-SortAlgo4d3" : { - "minimal_similarity" : 78.26087, - "maximum_similarity" : 87.09677, - "matched_token_number" : 54 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo3_5-SortAlgo5" : { - "minimal_similarity" : 81.159424, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 59.420288, + "maximum_similarity" : 73.21429, + "matched_token_number" : 41 }, "SortAlgo2_5-SortAlgo4" : { - "minimal_similarity" : 77.9661, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 23.728813, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo2_5-SortAlgo3" : { - "minimal_similarity" : 68.115944, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo3_5-SortAlgo4d1" : { - "minimal_similarity" : 79.710144, - "maximum_similarity" : 87.30159, - "matched_token_number" : 55 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo2_5-SortAlgo6" : { - "minimal_similarity" : 70.149254, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 13.432836, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo2_5-SortAlgo5" : { "minimal_similarity" : 100.0, @@ -744,9 +744,9 @@ "matched_token_number" : 56 }, "SortAlgo1-SortAlgo1_3" : { - "minimal_similarity" : 74.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 53.333332, + "maximum_similarity" : 71.42857, + "matched_token_number" : 40 }, "SortAlgo1-SortAlgo1_2" : { "minimal_similarity" : 73.68421, @@ -754,150 +754,150 @@ "matched_token_number" : 56 }, "SortAlgo1-SortAlgo1_6" : { - "minimal_similarity" : 93.333336, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 56.666668, + "maximum_similarity" : 60.714287, + "matched_token_number" : 34 }, "SortAlgo1-SortAlgo1_5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 25.0, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo1-SortAlgo1_4" : { - "minimal_similarity" : 94.91525, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 69.49152, + "maximum_similarity" : 73.21429, + "matched_token_number" : 41 }, "SortAlgo2_5-SortAlgo4d1" : { - "minimal_similarity" : 73.01588, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo3-SortAlgo7" : { - "minimal_similarity" : 78.26087, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 + "minimal_similarity" : 36.9863, + "maximum_similarity" : 39.130436, + "matched_token_number" : 27 }, "SortAlgo2_5-SortAlgo4d2" : { - "minimal_similarity" : 73.4375, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 }, "SortAlgo3-SortAlgo6" : { - "minimal_similarity" : 92.753624, - "maximum_similarity" : 95.522385, - "matched_token_number" : 64 + "minimal_similarity" : 52.173912, + "maximum_similarity" : 53.731342, + "matched_token_number" : 36 }, "SortAlgo1_4-SortAlgo1_5" : { - "minimal_similarity" : 77.9661, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 + "minimal_similarity" : 22.033897, + "maximum_similarity" : 23.214285, + "matched_token_number" : 13 }, "SortAlgo3-SortAlgo5" : { - "minimal_similarity" : 68.115944, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_4-SortAlgo1_6" : { - "minimal_similarity" : 98.333336, - "maximum_similarity" : 100.0, - "matched_token_number" : 59 + "minimal_similarity" : 66.666664, + "maximum_similarity" : 67.79661, + "matched_token_number" : 40 }, "SortAlgo3-SortAlgo4" : { - "minimal_similarity" : 84.05797, - "maximum_similarity" : 98.305084, - "matched_token_number" : 58 + "minimal_similarity" : 40.579712, + "maximum_similarity" : 47.457626, + "matched_token_number" : 28 }, "SortAlgo1_3-SortAlgo1_5" : { - "minimal_similarity" : 62.666668, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 12.0, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_3-SortAlgo1_4" : { - "minimal_similarity" : 77.333336, - "maximum_similarity" : 98.305084, - "matched_token_number" : 58 + "minimal_similarity" : 45.333332, + "maximum_similarity" : 57.627117, + "matched_token_number" : 34 }, "SortAlgo2_5-SortAlgo4d3" : { - "minimal_similarity" : 75.80645, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 - }, + "minimal_similarity" : 0.0, + "maximum_similarity" : 0.0, + "matched_token_number" : 0 + }, "SortAlgo1_3-SortAlgo1_6" : { - "minimal_similarity" : 78.666664, - "maximum_similarity" : 98.333336, - "matched_token_number" : 59 + "minimal_similarity" : 32.0, + "maximum_similarity" : 40.0, + "matched_token_number" : 24 }, "SortAlgo-SortAlgo3_6" : { - "minimal_similarity" : 74.666664, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 + "minimal_similarity" : 32.0, + "maximum_similarity" : 42.857143, + "matched_token_number" : 24 }, "SortAlgo1_2-SortAlgo1_5" : { - "minimal_similarity" : 61.842106, - "maximum_similarity" : 83.92857, - "matched_token_number" : 47 + "minimal_similarity" : 18.421053, + "maximum_similarity" : 25.0, + "matched_token_number" : 14 }, "SortAlgo-SortAlgo3_5" : { - "minimal_similarity" : 72.46377, - "maximum_similarity" : 89.28571, - "matched_token_number" : 50 + "minimal_similarity" : 13.043478, + "maximum_similarity" : 16.071428, + "matched_token_number" : 9 }, "SortAlgo1_2-SortAlgo1_6" : { - "minimal_similarity" : 76.31579, - "maximum_similarity" : 96.666664, - "matched_token_number" : 58 + "minimal_similarity" : 56.57895, + "maximum_similarity" : 71.666664, + "matched_token_number" : 43 }, "SortAlgo1_2-SortAlgo1_3" : { - "minimal_similarity" : 82.89474, - "maximum_similarity" : 84.0, - "matched_token_number" : 63 + "minimal_similarity" : 52.63158, + "maximum_similarity" : 53.333332, + "matched_token_number" : 40 }, "SortAlgo1_2-SortAlgo1_4" : { - "minimal_similarity" : 76.31579, - "maximum_similarity" : 98.305084, - "matched_token_number" : 58 + "minimal_similarity" : 56.57895, + "maximum_similarity" : 72.881355, + "matched_token_number" : 43 } } }, { "options" : { - "minimum_token_match" : 15 + "minimum_token_match" : 3 }, "tests" : { "SortAlgo-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo-SortAlgo6" : { - "minimal_similarity" : 43.28358, - "maximum_similarity" : 51.785713, - "matched_token_number" : 29 + "minimal_similarity" : 80.597015, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo-SortAlgo7" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 85.18519, - "matched_token_number" : 46 + "minimal_similarity" : 69.863014, + "maximum_similarity" : 91.07143, + "matched_token_number" : 51 }, "SortAlgo3_5-SortAlgo3_6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 58.666668, + "maximum_similarity" : 63.768116, + "matched_token_number" : 44 }, "SortAlgo6-SortAlgo7" : { - "minimal_similarity" : 43.28358, - "maximum_similarity" : 53.703705, - "matched_token_number" : 29 + "minimal_similarity" : 67.12329, + "maximum_similarity" : 73.13433, + "matched_token_number" : 49 }, "SortAlgo1_3-SortAlgo7" : { - "minimal_similarity" : 53.333332, - "maximum_similarity" : 74.07407, - "matched_token_number" : 40 + "minimal_similarity" : 66.666664, + "maximum_similarity" : 68.49315, + "matched_token_number" : 50 }, "SortAlgo1_3-SortAlgo6" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 35.820896, - "matched_token_number" : 24 + "minimal_similarity" : 80.0, + "maximum_similarity" : 89.55224, + "matched_token_number" : 60 }, "SortAlgo-SortAlgo1" : { "minimal_similarity" : 100.0, @@ -905,9 +905,9 @@ "matched_token_number" : 56 }, "SortAlgo1_3-SortAlgo3" : { - "minimal_similarity" : 54.666668, - "maximum_similarity" : 59.420288, - "matched_token_number" : 41 + "minimal_similarity" : 86.666664, + "maximum_similarity" : 94.202896, + "matched_token_number" : 65 }, "SortAlgo-SortAlgo2" : { "minimal_similarity" : 100.0, @@ -915,274 +915,274 @@ "matched_token_number" : 56 }, "SortAlgo1_3-SortAlgo2" : { - "minimal_similarity" : 53.333332, - "maximum_similarity" : 71.42857, - "matched_token_number" : 40 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo-SortAlgo3" : { - "minimal_similarity" : 57.971016, - "maximum_similarity" : 71.42857, - "matched_token_number" : 40 + "minimal_similarity" : 75.36232, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1_3-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 48.0, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo-SortAlgo4" : { - "minimal_similarity" : 35.59322, - "maximum_similarity" : 37.5, - "matched_token_number" : 21 + "minimal_similarity" : 83.05085, + "maximum_similarity" : 87.5, + "matched_token_number" : 49 }, "SortAlgo1_3-SortAlgo4" : { - "minimal_similarity" : 24.0, - "maximum_similarity" : 30.508474, - "matched_token_number" : 18 + "minimal_similarity" : 64.0, + "maximum_similarity" : 81.355934, + "matched_token_number" : 48 }, "SortAlgo2-SortAlgo2_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo1_2-SortAlgo2" : { - "minimal_similarity" : 59.210526, - "maximum_similarity" : 80.35714, - "matched_token_number" : 45 + "minimal_similarity" : 73.68421, + "maximum_similarity" : 100.0, + "matched_token_number" : 56 }, "SortAlgo1_2-SortAlgo3" : { - "minimal_similarity" : 52.63158, - "maximum_similarity" : 57.971016, - "matched_token_number" : 40 + "minimal_similarity" : 68.42105, + "maximum_similarity" : 75.36232, + "matched_token_number" : 52 }, "SortAlgo5-SortAlgo6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.238808, + "maximum_similarity" : 62.5, + "matched_token_number" : 35 }, "SortAlgo1_2-SortAlgo4" : { - "minimal_similarity" : 28.947369, - "maximum_similarity" : 37.288136, - "matched_token_number" : 22 + "minimal_similarity" : 73.68421, + "maximum_similarity" : 94.91525, + "matched_token_number" : 56 }, "SortAlgo5-SortAlgo7" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 45.20548, + "maximum_similarity" : 58.92857, + "matched_token_number" : 33 }, "SortAlgo1_2-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 51.31579, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo1_2-SortAlgo6" : { - "minimal_similarity" : 38.157894, - "maximum_similarity" : 43.28358, - "matched_token_number" : 29 + "minimal_similarity" : 73.68421, + "maximum_similarity" : 83.58209, + "matched_token_number" : 56 }, "SortAlgo1_2-SortAlgo7" : { - "minimal_similarity" : 46.05263, - "maximum_similarity" : 64.81481, - "matched_token_number" : 35 + "minimal_similarity" : 72.36842, + "maximum_similarity" : 75.34247, + "matched_token_number" : 55 }, "SortAlgo1-SortAlgo2_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo1_3-SortAlgo3_6" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 32.0, - "matched_token_number" : 24 + "minimal_similarity" : 82.666664, + "maximum_similarity" : 82.666664, + "matched_token_number" : 62 }, "SortAlgo4-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 59.322033, + "maximum_similarity" : 62.5, + "matched_token_number" : 35 }, "SortAlgo4-SortAlgo6" : { - "minimal_similarity" : 31.343283, - "maximum_similarity" : 35.59322, - "matched_token_number" : 21 + "minimal_similarity" : 68.656715, + "maximum_similarity" : 77.9661, + "matched_token_number" : 46 }, "SortAlgo1_4-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 44.927536, + "maximum_similarity" : 52.542374, + "matched_token_number" : 31 }, "SortAlgo4-SortAlgo7" : { - "minimal_similarity" : 35.59322, - "maximum_similarity" : 38.88889, - "matched_token_number" : 21 + "minimal_similarity" : 58.90411, + "maximum_similarity" : 72.881355, + "matched_token_number" : 43 }, "SortAlgo1_4-SortAlgo3_6" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 40.677967, - "matched_token_number" : 24 + "minimal_similarity" : 58.666668, + "maximum_similarity" : 74.57627, + "matched_token_number" : 44 }, "SortAlgo1_5-SortAlgo3_6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 45.333332, + "maximum_similarity" : 60.714287, + "matched_token_number" : 34 }, "SortAlgo1_5-SortAlgo3_5" : { - "minimal_similarity" : 59.420288, - "maximum_similarity" : 73.21429, - "matched_token_number" : 41 + "minimal_similarity" : 75.36232, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1_6-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 49.275364, + "maximum_similarity" : 56.666668, + "matched_token_number" : 34 }, "SortAlgo-SortAlgo4d3" : { - "minimal_similarity" : 70.96774, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 87.09677, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo1_6-SortAlgo3_6" : { - "minimal_similarity" : 57.333332, - "maximum_similarity" : 71.666664, - "matched_token_number" : 43 + "minimal_similarity" : 74.666664, + "maximum_similarity" : 93.333336, + "matched_token_number" : 56 }, "SortAlgo-SortAlgo4d2" : { - "minimal_similarity" : 68.75, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 84.375, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo-SortAlgo4d1" : { - "minimal_similarity" : 69.84127, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 85.71429, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo1_4-SortAlgo3" : { - "minimal_similarity" : 34.782608, - "maximum_similarity" : 40.677967, - "matched_token_number" : 24 + "minimal_similarity" : 68.115944, + "maximum_similarity" : 79.66102, + "matched_token_number" : 47 }, "SortAlgo3-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 71.014496, + "maximum_similarity" : 71.014496, + "matched_token_number" : 49 }, "SortAlgo1_4-SortAlgo4" : { - "minimal_similarity" : 79.66102, - "maximum_similarity" : 79.66102, - "matched_token_number" : 47 + "minimal_similarity" : 94.91525, + "maximum_similarity" : 94.91525, + "matched_token_number" : 56 }, "SortAlgo1_4-SortAlgo2" : { - "minimal_similarity" : 52.542374, - "maximum_similarity" : 55.357143, - "matched_token_number" : 31 + "minimal_similarity" : 83.05085, + "maximum_similarity" : 87.5, + "matched_token_number" : 49 }, "SortAlgo3-SortAlgo3_6" : { - "minimal_similarity" : 56.0, - "maximum_similarity" : 60.869564, - "matched_token_number" : 42 + "minimal_similarity" : 89.333336, + "maximum_similarity" : 97.10145, + "matched_token_number" : 67 }, "SortAlgo1_4-SortAlgo7" : { - "minimal_similarity" : 52.542374, - "maximum_similarity" : 57.407406, - "matched_token_number" : 31 + "minimal_similarity" : 60.27397, + "maximum_similarity" : 74.57627, + "matched_token_number" : 44 }, "SortAlgo1_4-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 50.847458, + "maximum_similarity" : 53.57143, + "matched_token_number" : 30 }, "SortAlgo2-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.173912, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo1_4-SortAlgo6" : { - "minimal_similarity" : 40.298508, - "maximum_similarity" : 45.76271, - "matched_token_number" : 27 + "minimal_similarity" : 70.149254, + "maximum_similarity" : 79.66102, + "matched_token_number" : 47 }, "SortAlgo2-SortAlgo3_6" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 42.857143, - "matched_token_number" : 24 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1-SortAlgo3_6" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 42.857143, - "matched_token_number" : 24 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.173912, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo-SortAlgo1_2" : { - "minimal_similarity" : 59.210526, - "maximum_similarity" : 80.35714, - "matched_token_number" : 45 + "minimal_similarity" : 73.68421, + "maximum_similarity" : 100.0, + "matched_token_number" : 56 }, "SortAlgo1_3-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 60.0, + "maximum_similarity" : 65.21739, + "matched_token_number" : 45 }, "SortAlgo1_2-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 47.36842, + "maximum_similarity" : 52.173912, + "matched_token_number" : 36 }, "SortAlgo1_2-SortAlgo3_6" : { - "minimal_similarity" : 31.578947, - "maximum_similarity" : 32.0, - "matched_token_number" : 24 + "minimal_similarity" : 68.42105, + "maximum_similarity" : 69.333336, + "matched_token_number" : 52 }, "SortAlgo-SortAlgo1_6" : { - "minimal_similarity" : 56.666668, - "maximum_similarity" : 60.714287, - "matched_token_number" : 34 + "minimal_similarity" : 93.333336, + "maximum_similarity" : 100.0, + "matched_token_number" : 56 }, "SortAlgo-SortAlgo1_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo-SortAlgo1_4" : { - "minimal_similarity" : 52.542374, - "maximum_similarity" : 55.357143, - "matched_token_number" : 31 + "minimal_similarity" : 83.05085, + "maximum_similarity" : 87.5, + "matched_token_number" : 49 }, "SortAlgo-SortAlgo1_3" : { - "minimal_similarity" : 53.333332, - "maximum_similarity" : 71.42857, - "matched_token_number" : 40 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1_6-SortAlgo4d1" : { - "minimal_similarity" : 36.50794, - "maximum_similarity" : 38.333332, - "matched_token_number" : 23 + "minimal_similarity" : 84.12698, + "maximum_similarity" : 88.333336, + "matched_token_number" : 53 }, "SortAlgo4d2-SortAlgo7" : { - "minimal_similarity" : 62.5, - "maximum_similarity" : 74.07407, - "matched_token_number" : 40 + "minimal_similarity" : 65.753426, + "maximum_similarity" : 75.0, + "matched_token_number" : 48 }, "SortAlgo1_6-SortAlgo4d2" : { - "minimal_similarity" : 35.9375, - "maximum_similarity" : 38.333332, - "matched_token_number" : 23 + "minimal_similarity" : 82.8125, + "maximum_similarity" : 88.333336, + "matched_token_number" : 53 }, "SortAlgo4d2-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 57.8125, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo4d2-SortAlgo6" : { - "minimal_similarity" : 34.328358, - "maximum_similarity" : 35.9375, - "matched_token_number" : 23 + "minimal_similarity" : 80.597015, + "maximum_similarity" : 84.375, + "matched_token_number" : 54 }, "SortAlgo1_6-SortAlgo4d3" : { - "minimal_similarity" : 37.096775, - "maximum_similarity" : 38.333332, - "matched_token_number" : 23 + "minimal_similarity" : 85.48387, + "maximum_similarity" : 88.333336, + "matched_token_number" : 53 }, "SortAlgo1_5-SortAlgo2_5" : { "minimal_similarity" : 100.0, @@ -1190,69 +1190,69 @@ "matched_token_number" : 56 }, "SortAlgo1_2-SortAlgo4d1" : { - "minimal_similarity" : 57.894737, - "maximum_similarity" : 69.84127, - "matched_token_number" : 44 + "minimal_similarity" : 71.052635, + "maximum_similarity" : 85.71429, + "matched_token_number" : 54 }, "SortAlgo1_3-SortAlgo4d3" : { - "minimal_similarity" : 53.333332, - "maximum_similarity" : 64.51613, - "matched_token_number" : 40 + "minimal_similarity" : 78.666664, + "maximum_similarity" : 95.16129, + "matched_token_number" : 59 }, "SortAlgo2-SortAlgo3" : { - "minimal_similarity" : 57.971016, - "maximum_similarity" : 71.42857, - "matched_token_number" : 40 + "minimal_similarity" : 75.36232, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1_2-SortAlgo4d2" : { - "minimal_similarity" : 57.894737, - "maximum_similarity" : 68.75, - "matched_token_number" : 44 + "minimal_similarity" : 71.052635, + "maximum_similarity" : 84.375, + "matched_token_number" : 54 }, "SortAlgo1_3-SortAlgo4d2" : { - "minimal_similarity" : 53.333332, - "maximum_similarity" : 62.5, - "matched_token_number" : 40 + "minimal_similarity" : 76.0, + "maximum_similarity" : 89.0625, + "matched_token_number" : 57 }, "SortAlgo2-SortAlgo4" : { - "minimal_similarity" : 35.59322, - "maximum_similarity" : 37.5, - "matched_token_number" : 21 + "minimal_similarity" : 83.05085, + "maximum_similarity" : 87.5, + "matched_token_number" : 49 }, "SortAlgo1_6-SortAlgo2_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 61.666668, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo1_4-SortAlgo4d1" : { - "minimal_similarity" : 36.50794, - "maximum_similarity" : 38.98305, - "matched_token_number" : 23 + "minimal_similarity" : 77.77778, + "maximum_similarity" : 83.05085, + "matched_token_number" : 49 }, "SortAlgo1_5-SortAlgo4d3" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 59.677418, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo1_4-SortAlgo4d2" : { - "minimal_similarity" : 35.9375, - "maximum_similarity" : 38.98305, - "matched_token_number" : 23 + "minimal_similarity" : 76.5625, + "maximum_similarity" : 83.05085, + "matched_token_number" : 49 }, "SortAlgo1_5-SortAlgo4d2" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 57.8125, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo1_4-SortAlgo4d3" : { - "minimal_similarity" : 37.096775, - "maximum_similarity" : 38.98305, - "matched_token_number" : 23 + "minimal_similarity" : 79.03226, + "maximum_similarity" : 83.05085, + "matched_token_number" : 49 }, "SortAlgo1_5-SortAlgo4d1" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 58.73016, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo4d2-SortAlgo4d3" : { "minimal_similarity" : 93.75, @@ -1260,24 +1260,24 @@ "matched_token_number" : 60 }, "SortAlgo2-SortAlgo7" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 85.18519, - "matched_token_number" : 46 + "minimal_similarity" : 69.863014, + "maximum_similarity" : 91.07143, + "matched_token_number" : 51 }, "SortAlgo1_2-SortAlgo4d3" : { - "minimal_similarity" : 57.894737, - "maximum_similarity" : 70.96774, - "matched_token_number" : 44 + "minimal_similarity" : 71.052635, + "maximum_similarity" : 87.09677, + "matched_token_number" : 54 }, "SortAlgo1_3-SortAlgo4d1" : { - "minimal_similarity" : 53.333332, - "maximum_similarity" : 63.49206, - "matched_token_number" : 40 + "minimal_similarity" : 76.0, + "maximum_similarity" : 90.47619, + "matched_token_number" : 57 }, "SortAlgo2-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo4d1-SortAlgo4d2" : { "minimal_similarity" : 98.4375, @@ -1285,9 +1285,9 @@ "matched_token_number" : 63 }, "SortAlgo2-SortAlgo6" : { - "minimal_similarity" : 43.28358, - "maximum_similarity" : 51.785713, - "matched_token_number" : 29 + "minimal_similarity" : 80.597015, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo4d1-SortAlgo4d3" : { "minimal_similarity" : 95.2381, @@ -1295,64 +1295,64 @@ "matched_token_number" : 60 }, "SortAlgo1_6-SortAlgo7" : { - "minimal_similarity" : 56.666668, - "maximum_similarity" : 62.962963, - "matched_token_number" : 34 + "minimal_similarity" : 68.49315, + "maximum_similarity" : 83.333336, + "matched_token_number" : 50 }, "SortAlgo2_5-SortAlgo3_5" : { - "minimal_similarity" : 59.420288, - "maximum_similarity" : 73.21429, - "matched_token_number" : 41 + "minimal_similarity" : 75.36232, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo3_6-SortAlgo6" : { - "minimal_similarity" : 73.333336, - "maximum_similarity" : 82.089554, - "matched_token_number" : 55 + "minimal_similarity" : 86.666664, + "maximum_similarity" : 97.01492, + "matched_token_number" : 65 }, "SortAlgo2_5-SortAlgo3_6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 45.333332, + "maximum_similarity" : 60.714287, + "matched_token_number" : 34 }, "SortAlgo3_6-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 45.333332, + "maximum_similarity" : 60.714287, + "matched_token_number" : 34 }, "SortAlgo3_6-SortAlgo7" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 44.444443, - "matched_token_number" : 24 + "minimal_similarity" : 62.666668, + "maximum_similarity" : 64.38356, + "matched_token_number" : 47 }, "SortAlgo4d3-SortAlgo6" : { - "minimal_similarity" : 34.328358, - "maximum_similarity" : 37.096775, - "matched_token_number" : 23 + "minimal_similarity" : 80.597015, + "maximum_similarity" : 87.09677, + "matched_token_number" : 54 }, "SortAlgo4d3-SortAlgo7" : { - "minimal_similarity" : 64.51613, - "maximum_similarity" : 74.07407, - "matched_token_number" : 40 + "minimal_similarity" : 65.753426, + "maximum_similarity" : 77.41936, + "matched_token_number" : 48 }, "SortAlgo4d3-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 59.677418, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo1_4-SortAlgo2_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 50.847458, + "maximum_similarity" : 53.57143, + "matched_token_number" : 30 }, "SortAlgo1-SortAlgo4" : { - "minimal_similarity" : 35.59322, - "maximum_similarity" : 37.5, - "matched_token_number" : 21 + "minimal_similarity" : 83.05085, + "maximum_similarity" : 87.5, + "matched_token_number" : 49 }, "SortAlgo1-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo1-SortAlgo2" : { "minimal_similarity" : 100.0, @@ -1360,94 +1360,94 @@ "matched_token_number" : 56 }, "SortAlgo3_6-SortAlgo4" : { - "minimal_similarity" : 24.0, - "maximum_similarity" : 30.508474, - "matched_token_number" : 18 + "minimal_similarity" : 61.333332, + "maximum_similarity" : 77.9661, + "matched_token_number" : 46 }, "SortAlgo1-SortAlgo3" : { - "minimal_similarity" : 57.971016, - "maximum_similarity" : 71.42857, - "matched_token_number" : 40 + "minimal_similarity" : 75.36232, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1_3-SortAlgo2_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 48.0, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo1_6-SortAlgo2" : { - "minimal_similarity" : 56.666668, - "maximum_similarity" : 60.714287, - "matched_token_number" : 34 + "minimal_similarity" : 93.333336, + "maximum_similarity" : 100.0, + "matched_token_number" : 56 }, "SortAlgo1-SortAlgo6" : { - "minimal_similarity" : 43.28358, - "maximum_similarity" : 51.785713, - "matched_token_number" : 29 + "minimal_similarity" : 80.597015, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo1-SortAlgo7" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 85.18519, - "matched_token_number" : 46 + "minimal_similarity" : 69.863014, + "maximum_similarity" : 91.07143, + "matched_token_number" : 51 }, "SortAlgo1_2-SortAlgo2_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 51.31579, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo-SortAlgo2_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo1_6-SortAlgo6" : { - "minimal_similarity" : 82.089554, - "maximum_similarity" : 91.666664, - "matched_token_number" : 55 + "minimal_similarity" : 86.56716, + "maximum_similarity" : 96.666664, + "matched_token_number" : 58 }, "SortAlgo1_6-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 61.666668, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo1_6-SortAlgo4" : { - "minimal_similarity" : 35.0, - "maximum_similarity" : 35.59322, - "matched_token_number" : 21 + "minimal_similarity" : 80.0, + "maximum_similarity" : 81.355934, + "matched_token_number" : 48 }, "SortAlgo1_6-SortAlgo3" : { - "minimal_similarity" : 34.782608, - "maximum_similarity" : 40.0, - "matched_token_number" : 24 + "minimal_similarity" : 75.36232, + "maximum_similarity" : 86.666664, + "matched_token_number" : 52 }, "SortAlgo1_5-SortAlgo6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.238808, + "maximum_similarity" : 62.5, + "matched_token_number" : 35 }, "SortAlgo1_5-SortAlgo7" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 45.20548, + "maximum_similarity" : 58.92857, + "matched_token_number" : 33 }, "SortAlgo2_5-SortAlgo7" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 45.20548, + "maximum_similarity" : 58.92857, + "matched_token_number" : 33 }, "SortAlgo1-SortAlgo4d3" : { - "minimal_similarity" : 70.96774, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 87.09677, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo1_5-SortAlgo4" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 59.322033, + "maximum_similarity" : 62.5, + "matched_token_number" : 35 }, "SortAlgo1-SortAlgo4d2" : { - "minimal_similarity" : 68.75, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 84.375, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo1_5-SortAlgo5" : { "minimal_similarity" : 100.0, @@ -1455,149 +1455,149 @@ "matched_token_number" : 56 }, "SortAlgo1-SortAlgo4d1" : { - "minimal_similarity" : 69.84127, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 85.71429, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo1_5-SortAlgo2" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo3_5-SortAlgo6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 57.971016, + "maximum_similarity" : 59.701492, + "matched_token_number" : 40 }, "SortAlgo1_5-SortAlgo3" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.173912, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo3_5-SortAlgo7" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 46.575344, + "maximum_similarity" : 49.275364, + "matched_token_number" : 34 }, "SortAlgo3-SortAlgo4d1" : { - "minimal_similarity" : 56.52174, - "maximum_similarity" : 61.904762, - "matched_token_number" : 39 + "minimal_similarity" : 81.159424, + "maximum_similarity" : 88.888885, + "matched_token_number" : 56 }, "SortAlgo3-SortAlgo4d3" : { - "minimal_similarity" : 56.52174, - "maximum_similarity" : 62.903225, - "matched_token_number" : 39 + "minimal_similarity" : 81.159424, + "maximum_similarity" : 90.32258, + "matched_token_number" : 56 }, "SortAlgo3-SortAlgo4d2" : { - "minimal_similarity" : 56.52174, - "maximum_similarity" : 60.9375, - "matched_token_number" : 39 + "minimal_similarity" : 81.159424, + "maximum_similarity" : 87.5, + "matched_token_number" : 56 }, "SortAlgo2-SortAlgo4d3" : { - "minimal_similarity" : 70.96774, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 87.09677, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo2-SortAlgo4d1" : { - "minimal_similarity" : 69.84127, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 85.71429, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo1_5-SortAlgo1_6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 61.666668, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo2-SortAlgo4d2" : { - "minimal_similarity" : 68.75, - "maximum_similarity" : 78.57143, - "matched_token_number" : 44 + "minimal_similarity" : 84.375, + "maximum_similarity" : 96.42857, + "matched_token_number" : 54 }, "SortAlgo3_6-SortAlgo4d2" : { - "minimal_similarity" : 30.666666, - "maximum_similarity" : 35.9375, - "matched_token_number" : 23 + "minimal_similarity" : 73.333336, + "maximum_similarity" : 85.9375, + "matched_token_number" : 55 }, "SortAlgo4d1-SortAlgo7" : { - "minimal_similarity" : 63.49206, - "maximum_similarity" : 74.07407, - "matched_token_number" : 40 + "minimal_similarity" : 65.753426, + "maximum_similarity" : 76.190475, + "matched_token_number" : 48 }, "SortAlgo3_6-SortAlgo4d1" : { - "minimal_similarity" : 30.666666, - "maximum_similarity" : 36.50794, - "matched_token_number" : 23 + "minimal_similarity" : 73.333336, + "maximum_similarity" : 87.30159, + "matched_token_number" : 55 }, "SortAlgo4d1-SortAlgo6" : { - "minimal_similarity" : 34.328358, - "maximum_similarity" : 36.50794, - "matched_token_number" : 23 + "minimal_similarity" : 80.597015, + "maximum_similarity" : 85.71429, + "matched_token_number" : 54 }, "SortAlgo4-SortAlgo4d1" : { - "minimal_similarity" : 28.571428, - "maximum_similarity" : 30.508474, - "matched_token_number" : 18 + "minimal_similarity" : 77.77778, + "maximum_similarity" : 83.05085, + "matched_token_number" : 49 }, "SortAlgo3_6-SortAlgo4d3" : { - "minimal_similarity" : 30.666666, - "maximum_similarity" : 37.096775, - "matched_token_number" : 23 + "minimal_similarity" : 73.333336, + "maximum_similarity" : 88.70968, + "matched_token_number" : 55 }, "SortAlgo4-SortAlgo4d2" : { - "minimal_similarity" : 28.125, - "maximum_similarity" : 30.508474, - "matched_token_number" : 18 + "minimal_similarity" : 76.5625, + "maximum_similarity" : 83.05085, + "matched_token_number" : 49 }, "SortAlgo4-SortAlgo4d3" : { - "minimal_similarity" : 29.032259, - "maximum_similarity" : 30.508474, - "matched_token_number" : 18 + "minimal_similarity" : 79.03226, + "maximum_similarity" : 83.05085, + "matched_token_number" : 49 }, "SortAlgo3_5-SortAlgo4" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 42.028984, + "maximum_similarity" : 49.152542, + "matched_token_number" : 29 }, "SortAlgo3_5-SortAlgo4d2" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 55.072464, + "maximum_similarity" : 59.375, + "matched_token_number" : 38 }, "SortAlgo4d1-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 58.73016, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo3_5-SortAlgo4d3" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 55.072464, + "maximum_similarity" : 61.29032, + "matched_token_number" : 38 }, "SortAlgo3_5-SortAlgo5" : { - "minimal_similarity" : 59.420288, - "maximum_similarity" : 73.21429, - "matched_token_number" : 41 + "minimal_similarity" : 75.36232, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo2_5-SortAlgo4" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 59.322033, + "maximum_similarity" : 62.5, + "matched_token_number" : 35 }, "SortAlgo2_5-SortAlgo3" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.173912, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo3_5-SortAlgo4d1" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 55.072464, + "maximum_similarity" : 60.31746, + "matched_token_number" : 38 }, "SortAlgo2_5-SortAlgo6" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.238808, + "maximum_similarity" : 62.5, + "matched_token_number" : 35 }, "SortAlgo2_5-SortAlgo5" : { "minimal_similarity" : 100.0, @@ -1605,119 +1605,119 @@ "matched_token_number" : 56 }, "SortAlgo1-SortAlgo1_3" : { - "minimal_similarity" : 53.333332, - "maximum_similarity" : 71.42857, - "matched_token_number" : 40 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1-SortAlgo1_2" : { - "minimal_similarity" : 59.210526, - "maximum_similarity" : 80.35714, - "matched_token_number" : 45 + "minimal_similarity" : 73.68421, + "maximum_similarity" : 100.0, + "matched_token_number" : 56 }, "SortAlgo1-SortAlgo1_6" : { - "minimal_similarity" : 56.666668, - "maximum_similarity" : 60.714287, - "matched_token_number" : 34 + "minimal_similarity" : 93.333336, + "maximum_similarity" : 100.0, + "matched_token_number" : 56 }, "SortAlgo1-SortAlgo1_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 69.64286, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo1-SortAlgo1_4" : { - "minimal_similarity" : 52.542374, - "maximum_similarity" : 55.357143, - "matched_token_number" : 31 + "minimal_similarity" : 83.05085, + "maximum_similarity" : 87.5, + "matched_token_number" : 49 }, "SortAlgo2_5-SortAlgo4d1" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 58.73016, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo3-SortAlgo7" : { - "minimal_similarity" : 57.971016, - "maximum_similarity" : 74.07407, - "matched_token_number" : 40 + "minimal_similarity" : 64.38356, + "maximum_similarity" : 68.115944, + "matched_token_number" : 47 }, "SortAlgo2_5-SortAlgo4d2" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 57.8125, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo3-SortAlgo6" : { - "minimal_similarity" : 52.173912, - "maximum_similarity" : 53.731342, - "matched_token_number" : 36 + "minimal_similarity" : 88.4058, + "maximum_similarity" : 91.04478, + "matched_token_number" : 61 }, "SortAlgo1_4-SortAlgo1_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 50.847458, + "maximum_similarity" : 53.57143, + "matched_token_number" : 30 }, "SortAlgo3-SortAlgo5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.173912, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo1_4-SortAlgo1_6" : { - "minimal_similarity" : 51.666668, - "maximum_similarity" : 52.542374, - "matched_token_number" : 31 + "minimal_similarity" : 83.333336, + "maximum_similarity" : 84.745766, + "matched_token_number" : 50 }, "SortAlgo3-SortAlgo4" : { - "minimal_similarity" : 26.086956, - "maximum_similarity" : 30.508474, - "matched_token_number" : 18 + "minimal_similarity" : 69.565216, + "maximum_similarity" : 81.355934, + "matched_token_number" : 48 }, "SortAlgo1_3-SortAlgo1_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 48.0, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo1_3-SortAlgo1_4" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 40.677967, - "matched_token_number" : 24 + "minimal_similarity" : 62.666668, + "maximum_similarity" : 79.66102, + "matched_token_number" : 47 }, "SortAlgo2_5-SortAlgo4d3" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 59.677418, + "maximum_similarity" : 66.07143, + "matched_token_number" : 37 }, "SortAlgo1_3-SortAlgo1_6" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 40.0, - "matched_token_number" : 24 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 86.666664, + "matched_token_number" : 52 }, "SortAlgo-SortAlgo3_6" : { - "minimal_similarity" : 32.0, - "maximum_similarity" : 42.857143, - "matched_token_number" : 24 + "minimal_similarity" : 69.333336, + "maximum_similarity" : 92.85714, + "matched_token_number" : 52 }, "SortAlgo1_2-SortAlgo1_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 51.31579, + "maximum_similarity" : 69.64286, + "matched_token_number" : 39 }, "SortAlgo-SortAlgo3_5" : { - "minimal_similarity" : 0.0, - "maximum_similarity" : 0.0, - "matched_token_number" : 0 + "minimal_similarity" : 52.173912, + "maximum_similarity" : 64.28571, + "matched_token_number" : 36 }, "SortAlgo1_2-SortAlgo1_6" : { - "minimal_similarity" : 44.736843, - "maximum_similarity" : 56.666668, - "matched_token_number" : 34 + "minimal_similarity" : 76.31579, + "maximum_similarity" : 96.666664, + "matched_token_number" : 58 }, "SortAlgo1_2-SortAlgo1_3" : { - "minimal_similarity" : 52.63158, - "maximum_similarity" : 53.333332, - "matched_token_number" : 40 + "minimal_similarity" : 68.42105, + "maximum_similarity" : 69.333336, + "matched_token_number" : 52 }, "SortAlgo1_2-SortAlgo1_4" : { - "minimal_similarity" : 40.789474, - "maximum_similarity" : 52.542374, - "matched_token_number" : 31 + "minimal_similarity" : 68.42105, + "maximum_similarity" : 88.13559, + "matched_token_number" : 52 } } } ] \ No newline at end of file From b7c1f9cac93efd3f24eea01cab1389018397cf56 Mon Sep 17 00:00:00 2001 From: Patrick Thiel Date: Wed, 7 Sep 2022 03:23:32 -0700 Subject: [PATCH 3/3] changed README.md file for better developer documentation --- jplag.endtoend-testing/README.md | 172 ++++++++++++++++--------------- 1 file changed, 90 insertions(+), 82 deletions(-) diff --git a/jplag.endtoend-testing/README.md b/jplag.endtoend-testing/README.md index 166296bd2..952e7e33d 100644 --- a/jplag.endtoend-testing/README.md +++ b/jplag.endtoend-testing/README.md @@ -1,10 +1,10 @@ -# JPlag - End To End Testing +# JPlag - End-To-End Testing With the help of the end-to-end module, changes to the detection of JPlag are to be tested. -With the help of elaborated plagiarisms, which have been worked out from suggestions in the literature on the topic of "plagiarism detection and avoidance", a wide range of detectable change can be covered. The selected plagiarisms are the decisive factor here as to whether a change in recognition can be perceived. +With the help of elaborated plagiarism, which has been worked out from suggestions in the literature on the topic of "plagiarism detection and avoidance", a wide range of detectable changes can be covered. The selected plagiarisms are the decisive factor here as to whether a change in recognition can be perceived. ## References -These elaborations provide basic ideas on how a modification of the plagiarized source code can look like or be adapted. +These elaborations provide basic ideas on how a modification of the plagiarized source code can look or be adapted. These code adaptations refer to a wide range of changes starting from adding/removing comments to architectural changes in the deliverables. @@ -19,106 +19,122 @@ The following changes were applied to sample tasks to create test cases:
  • Inserting comments or empty lines (normalization level)
  • Changing variable names or function names (normalization level)
  • Insertion of unnecessary or changed code lines (token generation)
  • -
  • Changing the program flow (token generation) (statments and functions must be independent from each other)
  • -
      -
    • Variable decleration at the beginning of the program
    • -
    • Combining declerations of variables
    • +
    • Changing the program flow (token generation) (statments and functions must be independent of each other)
    • +
        +
      • Variable declaration at the beginning of the program
      • +
      • Combining declarations of variables
      • Reuse of the same variable for other functions
    • Changing control structures
    • -
        +
        • for(...) to while(...)
        • if(...) to switch-case
      • Modification of expressions
      • -
          +
          • (X < Y) to !(X >= Y) and ++x to x = x + 1
        • Splitting and merging statements
        • -
            +
            • x = getSomeValue(); y = x- z; to y = (getSomeValue() - Z;
            -
          • Inserting unnecessary casts
          -More detailed information about the create as well as about the subject to the issue can be found in the issue [Develop an end-to-end testing strategy](https://github.com/jplag/JPlag/issues/193 "Develop an end-to-end testing strategy"). +More detailed information about the creation as well as about the subject of the issue can be found in the issue [Develop an end-to-end testing strategy](https://github.com/jplag/JPlag/issues/193 "Develop an end-to-end testing strategy"). **The changes listed above have been developed and evaluated for purely scientific purposes and are not intended to be used for plagiarism in the public or private domain.** -Software is according to [§ 2 of the copyright law](https://www.gesetze-im-internet.de/urhg/__2.html "§ 2 of the copyright law") a protected work which may not be plagiarized. +Software is according to [§ 2 of the copyright law](https://www.gesetze-im-internet.de/urhg/__2.html "§ 2 of the copyright law") a protected work that may not be plagiarized. -## JPlag - End To End TestSuite Structure -The construction of an end to end test is done with the help of the JPlag api. -The tests are generated dynamically according to the existing test data and allow the creation of endToEnd tests for all supported languages of JPlag without having to make any changes to the code. +## JPlag - End-To-End TestSuite Structure +The construction of an end-to-end test is done with the help of the JPlag api. +The tests are generated dynamically according to the existing test data and allow the creation of end-to-end tests for all supported languages of JPlag without having to make any changes to the code. The helper loads the existing test data from the designated directory and creates dynamic tests for the individual directories. It is therefore possible to create different test classes for the different languages. - JPlagTestSuiteHelper: -``` java +```JAVA public static Map> getAllLanguageResources() ``` The list of languages created in this way and their associated data are dynamically generated into test cases in the Test Suite. -``` java +```JAVA Collection dynamicOverAllTest() ``` -In order to be able to distinguish in which domain of the recognition changes have occurred, fine granular test cases are used. These are composed of the changes already mentioned above. The plagiarism is compared with the original delivery and thus it is possible to detect and test small sections of the recognition. +To be able to distinguish in which domain of the recognition changes have occurred, fine granular test cases are used. These are composed of the changes already mentioned above. The plagiarism is compared with the original delivery and thus it is possible to detect and test small sections of the recognition. The comparative values were discussed and tested. The following results of the JPlag scan are used for the comparison: 1. minimal similarity as `float` 2. maximum similarity as `float` 3. matched token number as `int` -The comparative values were disscussed and elaborated in the issue [End to end testing - "comparative values"](https://github.com/jplag/JPlag/issues/548 "End to end testing - \"comparative values\""). +The comparative values were disscussed and elaborated in the issue [End-to-end testing - "comparative values"](https://github.com/jplag/JPlag/issues/548 "End-to-end testing - \"comparative values\""). -Additionally it is possible to create several options for the test data. More information about the test options can be found at [JPlag - option variants for the endToEnd tests #590](https://github.com/jplag/JPlag/issues/590 "JPlag - option variants for the endToEnd tests #590"). Currently, various settings are supported by the `minimumTokenMatch`. This can be extended as desired in the record class `Options`. +Additionally, it is possible to create several options for the test data. More information about the test options can be found at [JPlag - option variants for the end-to-end tests #590](https://github.com/jplag/JPlag/issues/590 "JPlag - option variants for the end-to-end tests #590"). Currently, various settings are supported by the `minimumTokenMatch`. This can be extended as desired in the record class `Options`. The current JPlag scans will be compared with the stored ones. This was done by storing the data in a *.json file which is read at the beginning of each test run. -``` json -[...] -{ - "options" : { - "minimum_token_match" : 1 - }, - "tests" : { - "SortAlgo-SortAlgo5" : { - "minimal_similarity" : 82.14286, - "maximum_similarity" : 82.14286, - "matched_token_number" : 46 - }, - "SortAlgo-SortAlgo6" : { - "minimal_similarity" : 83.58209, - "maximum_similarity" : 100.0, - "matched_token_number" : 56 - }, - "SortAlgo-SortAlgo7" : { - "minimal_similarity" : 96.42857, - "maximum_similarity" : 100.0, - "matched_token_number" : 54 - }, -[...] +### JSON Result Structure + +The structures of the Json file can be traced using the individual record classen which can be found under `de.jplag.endtoend.model`. +The outer structure of the JSON file is recorded in the `ResultDescription` record. +The record contains a map of several options and the corresponding results. +The internal structure consists of several `Option` records, each of which contains information about the current configuration for the test run. +Thus the results can be kept apart from the other configurations. +The test results for the specified options are also specified in the object. This consists of the `ExpectedResult` record which contains the results of the detection. + +Here the herachie is as follows: + +```JSON +[{ + "options":{ + "minimum_token_match":"int" + }, + "tests":{ + "languageIdentifier":{ + "minimal_similarity":"float", + "maximum_similarity":"float", + "matched_token_number":"int" + }, + "/..." + } + }, + "options":{ + "minimum_token_match":"int" + }, + "tests":{ + "languageIdentifier":{ + "minimal_similarity":"float", + "maximum_similarity":"float", + "matched_token_number":"int" + }, + { + "/..." + } + } +}] ``` + --- -## Create New Language End To End Tests +## Create New Language End-To-End Tests -This section explains how to create new end to end tests in the existing test suite. +This section explains how to create new end-to-end tests in the existing test suite. ### Creating The Plagiarism -Before you add a new language to the end to end tests i would like to point out that the quality of the tests depends dreadfully on the plagiarism techniques you choose wicht were explaint in sechtion [Steps Towards Plagiarism](#steps-towards-plagiarism). +Before you add a new language to the end-to-end tests I would like to point out that the quality of the tests depends dreadfully on the plagiarism techniques you choose which were explained in section [Steps Towards Plagiarism](#steps-towards-plagiarism). If you need more information about the creation of plans for this purpose, you can also read the elaborations that can be found under [References](#references). -The more and varied changes you apply, the more accurate the end-to-end tests for the language will be. +The more varied changes you apply, the more accurate the end-to-end tests for the language will be. In the following an example is shown which is in the JavaEndToEnd tests and is used. **Changing control structures for(…) to while(…):** -``` java +```JAVA //base class public class SortAlgo { -//[...] +//... public void BubbleSortWithoutRecursion(Integer arr[]) { for(int i = arr.length; i > 1 ; i--) { for(int innerCounter = 0; innerCounter < arr.length-1; innerCounter++) @@ -129,14 +145,14 @@ public void BubbleSortWithoutRecursion(Integer arr[]) { } } } -//[...] +//... } ``` -``` java +```JAVA //created plagiarism public class SortAlgo5{ -//[...] +//... public void BubbleSortWithoutRecursion(Integer arr[]) { int i = arr.length; while(i > 1) @@ -149,40 +165,32 @@ public void BubbleSortWithoutRecursion(Integer arr[]) { } innerCounter++; } - i--; + I--; } } -//[...] +//... } ``` ### Copying Plagiarism To The Resources The plagiarisms created in [Creating The Plagiarism](#creating-the-plagiarism) must now be copied to the corresponding resources folder. It is important not to mix the languages of the plagiarisms or to copy the data into bottle resource paths. -- At the path `JPlag\jplag.endToEndTesting\src\test\resources\languageTestFiles` a new folder for the language should be created if it does not already exist. For example `[...]\resources\languageTestFiles\JAVA`. If you have plagiarized several different code samples, you can also create additional subfolders under the newly created folder for example `[...]\resources\languageTestFiles\JAVA\sortAlgo`. +- At the path `JPlag/jplag.endToEndTesting/src/test/resources/languageTestFiles` a new folder for the language should be created if it does not already exist. For example `[...]/resources/languageTestFiles/JAVA`. If you have plagiarized several different code samples, you can also create additional subfolders under the newly created folder for example `[...]/resources/languageTestFiles/JAVA/sortAlgo`. -It is important to note that the resource folder name must be exactly the same as the language identifier name in JPlag/Language. Otherwise the language option cannot be parsed correctly to the enum-type. - - c++ with "cpp" - - c# with "csharp" - - GO with "go" - - Java with "java" - - Kotlin with "kotlin" - - Python3 with "python3" - - R with "rlang" - - Rust with "rust" - - Scala with "scala" +It is important to note that the resource folder name must be the same as the language identifier name in JPlag/Language. +Otherwise, the language option cannot be parsed correctly to the enum-type which you can found in every language module under `Language.java` `IDENTIFIER` -Once the tests have been run for the first time, the information for the tests is stored in the folder `..\target\testing-directory-submission\LANGUAGE`. This data can be copied to the path `[...]\resources\results\LANGUAGE`. Each subdirectory gets its own result json file as `[...]\resources\results\JAVA\sortAlgo.json`. Once the test data has been copied, the endToEnd tests can be successfully tested. As soon as a change in the detection takes place, the results will differ from the stored results and the tests will fail if the results have changed. +Once the tests have been run for the first time, the information for the tests is stored in the folder `../target/testing-directory-submission/LANGUAGE`. This data can be copied to the path `[...]/resources/results/LANGUAGE`. Each subdirectory gets its result JSON file as `[...]/resources/results/LANGUAGE/TEST_SUITE_NAME.json`. Once the test data has been copied, the end-to-end tests can be successfully tested. As soon as a change in the detection takes place, the results will differ from the stored results and the tests will fail if the results have changed. ### Extending The Comparison Value -As already described, the current comparisons in the end to end test treat the values of `minimal similarity`, `maximum similarity` and `matched token number`. +As already described, the current comparisons in the end-to-end test treat the values of `minimal similarity`, `maximum similarity`, and `matched token number`. As soon as there is a need to extend these comparison values, this section describes how this can be achieved. Beforehand, however, this should be discussed in a new issue about this need. -- For new comparison values these properties must be extended in the `ExpectedResult` record at the package `de.jplag.endtoend.model`. Here it is sufficient to add the values in the record and to enter the json name as `@JsonProperty("json_name")`. +- For new comparison values these properties must be extended in the `ExpectedResult` record at the package `de.jplag.endtoend.model`. Here it is sufficient to add the values in the record and to enter the JSON name as `@JsonProperty("json_name")`. -``` java +```JAVA public record ExpectedResult( @JsonProperty("minimal_similarity") float resultSimilarityMinimum, @JsonProperty("maximum_similarity") float resultSimilarityMaximum, @@ -190,34 +198,34 @@ public record ExpectedResult( } ``` -- In order to be able to include the new value in the tests, they must be added to the `EndToEndSuiteTest` as a comparison operation at the package `de.jplag.endtoend`. The `runJPlagTestSuite()` function provided for this purpose must be extended to include the new comparison value. To do this, create the comparison as shown in the code example below. +- To be able to include the new value in the tests, they must be added to the `EndToEndSuiteTest` as a comparison operation at the package `de.jplag.endtoend`. The `runJPlagTestSuite()` function provided for this purpose must be extended to include the new comparison value. To do this, create the comparison as shown in the code example below. -``` java -[...] +```JAVA +//... if (Float.compare(result.resultSimilarityMaximum(), jPlagComparison.maximalSimilarity()) != 0) { addToValidationErrors("maximalSimilarity", String.valueOf(result.resultSimilarityMaximum()), String.valueOf(jPlagComparison.maximalSimilarity())); } -[...] +//... ``` -- Once the tests run the first time they will fail due to the missing values in the old json result file used for the test cases. The old results must then be replaced with the new ones. +- Once the tests run the first time they will fail due to the missing values in the old JSON result file used for the test cases. The old results must then be replaced with new ones. For this purpose, the last section of the chapter [Copying Plagiarism To The Resources](#copying-plagiarism-to-the-resources) can be used as help. ### Extending JPlar Test Run Options -The endToEnd tests support the possible scan options of the JPlag api. Currently `minimumTokenMatch` is used in the endToEnd tests. These values are also stored in the json as configuration to keep the test cases at the options apart. Likewise also changes of the logic in the different options are to be determined to be able. +The endToEnd tests support the possible scan options of the JPlag API. Currently `minimumTokenMatch` is used in the end-to-end tests. These values are also stored in the JSON as configuration to keep the test cases at the options apart. Likewise, also changes in the logic of the different options are to be determined to be able. -- To extend new options to the endToEnd tests they have to be added to the record object `Options` in the package `de.jplag.endtoend.model`. Here it is sufficient to add the values in the record and to enter the json name as `@JsonProperty("json_name")`. +- To extend new options to the end-to-end tests they have to be added to the record object `Options` in the package `de.jplag.endtoend.model`. Here it is sufficient to add the values in the record and to enter the JSON name as `@JsonProperty("json_name")`. -``` java +```JAVA public record Options( @JsonProperty("minimum_token_match") Integer minimumTokenMatch) { } ``` -- After the new value has been added to the record, the creation of the object must now also be adjusted in the `EndToEndSuiteTest` . The 'setRunOptions' function is provided for this purpose. The options can be added in any order and combination. It should be noted that each test case is run with these options. +- After the new value has been added to the record, the creation of the object must now also be adjusted in the `EndToEndSuiteTest`. The 'setRunOptions' function is provided for this purpose. The options can be added in any order and combination. It should be noted that each test case is run with these options. -``` java +```JAVA private void setRunOptions() { options = new ArrayList<>(); options.add(new Options(1)); @@ -226,9 +234,9 @@ public record Options( ``` - If you want to create individual test cases by testing the options only on a specific set of dates, a new test case must be created for this purpose. For the new test cases, the options in the transfer parameters can be adjusted and specified. This can then be tested with the function `runTests`. - ```java + ```JAVA runTests(directoryName, option, currentLanguageIdentifier, testCase, currentResultDescription); ``` -- Once the tests run the first time they will fail due to the missing values in the old json result file used for the test cases. The old results must then be replaced with the new ones. +- Once the tests run the first time they will fail due to the missing values in the old JSON result file used for the test cases. The old results must then be replaced with new ones. For this purpose, the last section of the chapter [Copying Plagiarism To The Resources](#copying-plagiarism-to-the-resources) can be used as help. \ No newline at end of file