Skip to content
Snippets Groups Projects
Commit be7d02a0 authored by Dennis Eisold's avatar Dennis Eisold
Browse files

Unit Tests. Fix der Walzen Klasse.

parent 14d62475
No related branches found
No related tags found
No related merge requests found
package Enigma.model; package Enigma.model;
import java.time.Year;
/** /**
* Klasse Walze * Klasse Walze
* <p> * <p>
...@@ -26,8 +24,8 @@ public class Walze { ...@@ -26,8 +24,8 @@ public class Walze {
* iPositionBuchstabeRe : gibt die Position des codierten Buchstabens im Alphabet wieder. * iPositionBuchstabeRe : gibt die Position des codierten Buchstabens im Alphabet wieder.
* private Character[] walze : Character-Array der Walze * private Character[] walze : Character-Array der Walze
*/ */
/*Alphawalze*/ /*Alphawalze*/
private final static Character[] walzeAlpha = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; private final static Character[] walzeAlpha = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
private Character buchstabe; private Character buchstabe;
private int ringstellung; private int ringstellung;
private int walzennr; private int walzennr;
...@@ -58,12 +56,12 @@ public class Walze { ...@@ -58,12 +56,12 @@ public class Walze {
*/ */
private Character[] walzenNummer() { private Character[] walzenNummer() {
Character[] walzeEins = {'E', 'K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'}; Character[] walzeEins = {'E', 'K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'};
Character[] walzeZwei = {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'}; Character[] walzeZwei = {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'};
Character[] walzeDrei = {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'}; Character[] walzeDrei = {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
Character[] walzeVier = {'E', 'S', 'O', 'V', 'P', 'Z', 'J', 'A', 'Y', 'Q', 'U', 'I', 'R', 'H', 'X', 'L', 'N', 'F', 'T', 'G', 'K', 'D', 'C', 'M', 'W', 'B'}; Character[] walzeVier = {'E', 'S', 'O', 'V', 'P', 'Z', 'J', 'A', 'Y', 'Q', 'U', 'I', 'R', 'H', 'X', 'L', 'N', 'F', 'T', 'G', 'K', 'D', 'C', 'M', 'W', 'B'};
Character[] walzeFuenf ={'V', 'Z', 'B', 'R', 'G', 'I', 'T', 'Y', 'U', 'P', 'S', 'D', 'N', 'H', 'L', 'X', 'A', 'W', 'M', 'J', 'Q', 'O', 'F', 'E', 'C', 'K'}; Character[] walzeFuenf = {'V', 'Z', 'B', 'R', 'G', 'I', 'T', 'Y', 'U', 'P', 'S', 'D', 'N', 'H', 'L', 'X', 'A', 'W', 'M', 'J', 'Q', 'O', 'F', 'E', 'C', 'K'};
switch (this.walzennr) { switch (this.walzennr) {
case 1: case 1:
...@@ -90,10 +88,10 @@ public class Walze { ...@@ -90,10 +88,10 @@ public class Walze {
//walzenPosition() return int => Gibt die aktuelle Position des Buchstabens zurück //walzenPosition() return int => Gibt die aktuelle Position des Buchstabens zurück
public char walzenPosition() { public char walzenPosition() {
/*Alphabetswalze*/ /*Alphabetswalze*/
Character[] walzeAlphabeth = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'}; Character[] walzeAlphabeth = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
return walzeAlphabeth[iPositionBuchstabe]; return walzeAlphabeth[iPositionBuchstabe];
} }
...@@ -132,13 +130,13 @@ public class Walze { ...@@ -132,13 +130,13 @@ public class Walze {
iPositionBuchstabe = 0; iPositionBuchstabe = 0;
} else { } else {
iPositionBuchstabe += 1; iPositionBuchstabe += 1;
} }
if (iPositionBuchstabe == getRingstellung()) { if (iPositionBuchstabe == getRingstellung()) {
checkRing = true; checkRing = true;
} else { } else {
checkRing = false; checkRing = false;
} }
return checkRing; return checkRing;
} }
...@@ -154,14 +152,14 @@ public class Walze { ...@@ -154,14 +152,14 @@ public class Walze {
* @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe * @return chiffrierterBuchstabe : Character : chiffrierter Buchstabe
*/ */
public char codiere(char buchstabe) { public char codiere(char buchstabe) {
for(int i = 0; i < walzeAlpha.length; i++) { for (int i = 0; i < walzeAlpha.length; i++) {
if(walzeAlpha[i].equals(buchstabe)) { if (walzeAlpha[i].equals(buchstabe)) {
buchstabe = walzenNummer()[i]; buchstabe = walzenNummer()[i];
break; break;
} }
} }
return buchstabe; return buchstabe;
} }
...@@ -176,12 +174,12 @@ public class Walze { ...@@ -176,12 +174,12 @@ public class Walze {
*/ */
public char codiere2(char buchstabe) { public char codiere2(char buchstabe) {
for(int i = 0; i < walzenNummer().length; i++) { for (int i = 0; i < walzenNummer().length; i++) {
if(walzenNummer()[i].equals(buchstabe)) { if (walzenNummer()[i].equals(buchstabe)) {
buchstabe = walzeAlpha[i]; buchstabe = walzeAlpha[i];
break; break;
} }
} }
return buchstabe; return buchstabe;
} }
...@@ -207,17 +205,16 @@ public class Walze { ...@@ -207,17 +205,16 @@ public class Walze {
if (Character.isLetter(buchstabe)) { if (Character.isLetter(buchstabe)) {
this.buchstabe = Character.toUpperCase(buchstabe); this.buchstabe = Character.toUpperCase(buchstabe);
for(int i = 0; i < 25; i++) { for (int i = 0; i < 25; i++) {
if(walzeAlpha[i].equals(buchstabe)) { if (walzeAlpha[i].equals(buchstabe)) {
this.iPositionBuchstabe = i; this.iPositionBuchstabe = i;
} }
} }
} else { } else {
this.buchstabe = 'A'; this.buchstabe = 'A';
} }
} }
//TODO: ??? Brauchen wir Setter, wo findet Überprüfung der Walzennr. statt. //TODO: ??? Brauchen wir Setter, wo findet Überprüfung der Walzennr. statt.
/** /**
......
package Enigma.model;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.*;
public class HardwareTest {
@Test
public void tippeBuchstabe() {
Hardware h = new Hardware();
h.setReflektor(new Reflektor());
h.setSteckbrett(new Steckbrett());
h.setWalzen(1, 1, 1);
h.setWalzen(2, 2, 1);
h.setWalzen(3, 3, 1);
/*
A = E = S = G = Y = O = Y = O
I = V = Y = Q = O = Z = S = S
F = G = R = W = K = U = H = P
In S 1 2 3 R 3 2 1 S
A E D H X S Z J
J Z E J B D K N
Walze nach der Chiffrierung
Alphabet {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
Steckbrett {'B', 'G', 'D', 'F'}
Steckbrett {'G', 'B', 'F', 'F'}
Walze 1 {'E', 'K', 'M', 'F', 'L', 'G', 'D', 'Q', 'V', 'Z', 'N', 'T', 'O', 'W', 'Y', 'H', 'X', 'U', 'S', 'P', 'A', 'I', 'B', 'R', 'C', 'J'};
Walze 2 {'A', 'J', 'D', 'K', 'S', 'I', 'R', 'U', 'X', 'B', 'L', 'H', 'W', 'T', 'M', 'C', 'Q', 'G', 'Z', 'N', 'P', 'Y', 'F', 'V', 'O', 'E'};
Walze 3 {'B', 'D', 'F', 'H', 'J', 'L', 'C', 'P', 'R', 'T', 'X', 'V', 'Z', 'N', 'Y', 'E', 'I', 'W', 'G', 'A', 'K', 'M', 'U', 'S', 'Q', 'O'};
Reflektor {'E', 'J', 'M', 'Z', 'A', 'L', 'Y', 'X', 'V', 'B', 'W', 'F', 'C', 'R', 'Q', 'U', 'O', 'N', 'T', 'S', 'P', 'I', 'K', 'H', 'G', 'D'};
*/
char result = h.tippeBuchstabe('A');
Assert.assertEquals("Codiere: Erwartet O, erhalten "+ result, 'O', result);
result = h.tippeBuchstabe('I');
Assert.assertEquals("Codiere: Erwartet S, erhalten "+ result, 'S', result);
result = h.tippeBuchstabe('F');
Assert.assertEquals("Codiere: Erwartet P, erhalten "+ result, 'P', result);
result = h.tippeBuchstabe('O');
Assert.assertEquals("Decodiere: Erwartet A, erhalten "+ result, 'A', result);
result = h.tippeBuchstabe('S');
Assert.assertEquals("Decodiere: Erwartet I, erhalten "+ result, 'I', result);
result = h.tippeBuchstabe('P');
Assert.assertEquals("Decodiere: Erwartet F, erhalten "+ result, 'F', result);
h.getSteckbrett().setzeVertauschung('B', 'G');
h.getSteckbrett().setzeVertauschung('D', 'F');
h.getSteckbrett().setzeVertauschung('I', 'L');
h.getSteckbrett().setzeVertauschung('M', 'Q');
h.getSteckbrett().setzeVertauschung('T', 'X');
result = h.tippeBuchstabe('I');
Assert.assertEquals("Codiere: Erwartet F, erhalten "+ result, 'F', result);
result = h.tippeBuchstabe('F');
Assert.assertEquals("Codiere: Erwartet I, erhalten "+ result, 'I', result);
}
}
\ No newline at end of file
...@@ -14,12 +14,6 @@ public class ReflektorTest { ...@@ -14,12 +14,6 @@ public class ReflektorTest {
Assert.assertEquals('X', r.codiere('H')); Assert.assertEquals('X', r.codiere('H'));
Assert.assertEquals('O', r.codiere('Q')); Assert.assertEquals('O', r.codiere('Q'));
Assert.assertEquals('I', r.codiere('V')); Assert.assertEquals('I', r.codiere('V'));
//Assert.assertNull(null, r.codiere(null));
}
@Test
public void codiere2() {
Reflektor r = new Reflektor();
Assert.assertEquals('A', r.codiere('E')); Assert.assertEquals('A', r.codiere('E'));
Assert.assertEquals('D', r.codiere('Z')); Assert.assertEquals('D', r.codiere('Z'));
Assert.assertEquals('H', r.codiere('X')); Assert.assertEquals('H', r.codiere('X'));
......
...@@ -24,13 +24,4 @@ public class SteckbrettTest { ...@@ -24,13 +24,4 @@ public class SteckbrettTest {
Assert.assertEquals('H', sb.codiere('C')); Assert.assertEquals('H', sb.codiere('C'));
Assert.assertEquals('G', sb.codiere('A')); Assert.assertEquals('G', sb.codiere('A'));
} }
@Test
public void codiere2() {
Steckbrett sb = new Steckbrett();
sb.setzeVertauschung('A', 'G');
sb.setzeVertauschung('C', 'H');
Assert.assertEquals('C', sb.codiere2('H'));
Assert.assertEquals('A', sb.codiere2('G'));
}
} }
\ No newline at end of file
...@@ -8,38 +8,36 @@ import static org.junit.Assert.*; ...@@ -8,38 +8,36 @@ import static org.junit.Assert.*;
public class WalzeTest { public class WalzeTest {
@Test @Test
public void setzeNotch() { public void setRingstellung() {
Walze w = new Walze(1); Walze w = new Walze(1, 1);
w.setzeNotch('G'); Assert.assertEquals('A', w.walzenPosition());
Assert.assertEquals('G', w.wlazenPosition());
} }
@Test @Test
public void dreheWalze() { public void dreheWalze() {
Walze w = new Walze(1); Walze w = new Walze(1, 3);
w.setzeNotch('G'); assertFalse("false erwartet, true geliefert", w.dreheWalze());
w.dreheWalze(); char temp = w.walzenPosition();
Assert.assertEquals('H', w.wlazenPosition()); Assert.assertEquals("B erwartet, " + temp + " zurück gegeben", 'B', temp);
} }
@Test @Test
public void walzenPoition() { public void walzenPoition() {
Walze w = new Walze(1); Walze w = new Walze(1, 1);
w.setzeNotch('G'); Assert.assertEquals('A', w.walzenPosition());
Assert.assertEquals('G', w.wlazenPosition());
} }
@Test @Test
public void codiere() { public void codiere() {
Walze w = new Walze(1); Walze w = new Walze(1, 1);
w.setzeNotch('A'); char result = w.codiere('G');
Assert.assertEquals('E', w.codiere('A')); Assert.assertEquals("Erwartet D erhalten " + result, 'D', result);
} }
@Test @Test
public void codiere2() { public void codiere2() {
Walze w = new Walze(1); Walze w = new Walze(1, 1);
w.setzeNotch('A'); char result = w.codiere2('E');
Assert.assertEquals('A', w.codiere('E')); Assert.assertEquals("Erwartet A erhalten " + result, 'A', result);
} }
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment