Browse Source

Added some example clones to detect.

master
Denis Thiessen 5 months ago
parent
commit
cec0f332b7
  1. 2
      .gitignore
  2. 23
      pom.xml
  3. 26
      src/main/java/de/denisthiessen/algorithms/CaesarAlgorithm.java
  4. 26
      src/main/java/de/denisthiessen/algorithms/HashingAlgorithm.java
  5. 14
      src/main/java/de/denisthiessen/algorithms/NoEncryptionAlgorithm.java
  6. 22
      src/main/java/de/denisthiessen/algorithms/Rot13Algorithm.java
  7. 18
      src/main/java/de/denisthiessen/algorithms/XORAlgorithm.java

2
.gitignore

@ -23,3 +23,5 @@
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.vscode
/target/

23
pom.xml

@ -14,8 +14,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
@ -69,6 +69,25 @@
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.0.0</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.7.201606060606</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>

26
src/main/java/de/denisthiessen/algorithms/CaesarAlgorithm.java

@ -8,6 +8,13 @@ public class CaesarAlgorithm implements IAlgorithm {
@Override
public String executeAlgorithm(String sourceString) {
// Type 2 example clone (4)
testNothing("Test", 1);
testNothing("Hello", 5);
testNothing("Please. Send. Help", 69);
testNothing("I'm stuck in this array of characters", 420);
int shift = 42;
StringBuilder encryptedText = new StringBuilder();
for (char c : sourceString.toCharArray()) {
@ -20,5 +27,22 @@ public class CaesarAlgorithm implements IAlgorithm {
}
return encryptedText.toString();
}
// Type 1 Example Clone. (1)
public void printHey() {
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
}
private void testNothing(String testStringParameter, int testIntParameter) {
// I didn't overpromise...
}
}

26
src/main/java/de/denisthiessen/algorithms/HashingAlgorithm.java

@ -14,7 +14,33 @@ public class HashingAlgorithm implements IAlgorithm {
for(char character : inputCharacters) {
hashCode = hashCode*31 + ((int)character);
}
// Type 2 example clone (2)
int i = 5;
i += 5;
i += 3;
i -= 4;
i = 3;
i += 1;
i += 1;
i += 1;
i += 1;
System.out.println(i);
return String.valueOf(hashCode);
}
private void type3TestFunction() {
// Type 3 example clone (3)
int y = 12;
y += 6;
y += 3;
y -= 2;
y += 8;
y = 1;
y += 4;
y += 2;
y += 93;
System.out.println(y);
}
}

14
src/main/java/de/denisthiessen/algorithms/NoEncryptionAlgorithm.java

@ -10,4 +10,18 @@ public class NoEncryptionAlgorithm implements IAlgorithm {
public String executeAlgorithm(String sourceString) {
return sourceString;
}
// Type 1 Example Clone. (1)
public void printHey() {
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
System.out.println("Hey!");
}
}

22
src/main/java/de/denisthiessen/algorithms/Rot13Algorithm.java

@ -10,6 +10,12 @@ public class Rot13Algorithm implements IAlgorithm {
public String executeAlgorithm(String sourceString) {
StringBuilder sb = new StringBuilder();
// Type 2 example clone (4)
testNothing("Test", 1);
testNothing("Hello", 5);
testNothing("Please. Send. Help", 69);
testNothing("I'm stuck in this array of characters", 420);
for (int i = 0; i < sourceString.length(); i++) {
char c = sourceString.charAt(i);
if (c >= 'a' && c <= 'm')
@ -22,7 +28,23 @@ public class Rot13Algorithm implements IAlgorithm {
c -= 13;
sb.append(c);
}
// Type 2 example clone (2)
int i = 1;
i += 1;
i += 1;
i += 1;
i += 1;
i += 1;
i += 1;
i += 1;
i += 1;
System.out.println(i);
return sb.toString();
}
private void testNothing(String testStringParameter, int testIntParameter) {
// I didn't overpromise...
}
}

18
src/main/java/de/denisthiessen/algorithms/XORAlgorithm.java

@ -19,6 +19,24 @@ public class XORAlgorithm implements IAlgorithm {
char encryptedChar = (char) (plainChar ^ keyChar);
encryptedText.append(encryptedChar);
}
// Type 3 example clone (3)
int i = 5;
i += 5;
i += 3;
i -= 4;
i = 3;
testFunction();
i += 1;
i += 1;
i += 1;
i += 1;
System.out.println(i);
return encryptedText.toString();
}
private void testFunction() {
System.out.println("Hello World");
}
}
Loading…
Cancel
Save