diff options
author | Sébastien Lesaint <sebastien.lesaint@sonarsource.com> | 2018-02-14 08:54:53 +0100 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-05-28 20:20:44 +0200 |
commit | 38e6e3cc07069070bcc4148d3f9bc50681bea7be (patch) | |
tree | 3c2ab48f28796c6ded5f3e0eabd39440c32a6c06 | |
parent | 3c77c1642ca07b4587e038926626c0e38248691f (diff) | |
download | sonarqube-38e6e3cc07069070bcc4148d3f9bc50681bea7be.tar.gz sonarqube-38e6e3cc07069070bcc4148d3f9bc50681bea7be.zip |
SONAR-10430 add UT to explore file size impact similarity algo
-rw-r--r-- | server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/filemove/SourceSimilarityImplTest.java | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/filemove/SourceSimilarityImplTest.java b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/filemove/SourceSimilarityImplTest.java index 0c0b08b3479..5b5b84dd8f8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/filemove/SourceSimilarityImplTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/computation/task/projectanalysis/filemove/SourceSimilarityImplTest.java @@ -20,6 +20,8 @@ package org.sonar.server.computation.task.projectanalysis.filemove; import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.IntStream; import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; @@ -56,6 +58,48 @@ public class SourceSimilarityImplTest { } @Test + public void finding_threshold_in_line_count_to_go_below_85_score() { + assertThat(underTest.score(listOf(100), listOf(115))).isEqualTo(86); + assertThat(underTest.score(listOf(100), listOf(116))).isEqualTo(86); + assertThat(underTest.score(listOf(100), listOf(117))).isEqualTo(85); + assertThat(underTest.score(listOf(100), listOf(118))).isEqualTo(84); // 84.74% + + assertThat(underTest.score(listOf(50), listOf(58))).isEqualTo(86); + assertThat(underTest.score(listOf(50), listOf(59))).isEqualTo(84); // 84.74% + + assertThat(underTest.score(listOf(25), listOf(29))).isEqualTo(86); + assertThat(underTest.score(listOf(25), listOf(30))).isEqualTo(83); // 83.33% + + assertThat(underTest.score(listOf(12), listOf(14))).isEqualTo(85); + assertThat(underTest.score(listOf(12), listOf(15))).isEqualTo(80); // 80.00% + + assertThat(underTest.score(listOf(10), listOf(11))).isEqualTo(90); + assertThat(underTest.score(listOf(10), listOf(12))).isEqualTo(83); // 83.33% + + assertThat(underTest.score(listOf(5), listOf(5))).isEqualTo(100); + assertThat(underTest.score(listOf(5), listOf(6))).isEqualTo(83); // 83.33% + + assertThat(underTest.score(listOf(200), listOf(234))).isEqualTo(85); + assertThat(underTest.score(listOf(200), listOf(236))).isEqualTo(84); // 84.75% + + assertThat(underTest.score(listOf(300), listOf(352))).isEqualTo(85); + assertThat(underTest.score(listOf(300), listOf(354))).isEqualTo(84); // 84.74% + + assertThat(underTest.score(listOf(400), listOf(470))).isEqualTo(85); + assertThat(underTest.score(listOf(400), listOf(471))).isEqualTo(84); // 84.92% + + assertThat(underTest.score(listOf(500), listOf(588))).isEqualTo(85); + assertThat(underTest.score(listOf(500), listOf(589))).isEqualTo(84); // 84.88% + } + + /** + * Creates a list of {@code numberOfElements} int values as String, starting with zero. + */ + private static List<String> listOf(int numberOfElements) { + return IntStream.range(0, numberOfElements).mapToObj(String::valueOf).collect(Collectors.toList()); + } + + @Test public void two_empty_lists_are_not_considered_as_equal() { assertThat(underTest.score(emptyList(), emptyList())).isEqualTo(0); } |