浏览代码

Caesar crypt done

Lauren Green 7 年前
父节点
当前提交
cd7e74e58c
共有 2 个文件被更改,包括 121 次插入0 次删除
  1. 19
    0
      Crypto/src/main/java/Caesar.java
  2. 102
    0
      Crypto/src/test/java/CaesarTest.java

+ 19
- 0
Crypto/src/main/java/Caesar.java 查看文件

@@ -0,0 +1,19 @@
1
+public class Caesar extends ROT13 {
2
+
3
+
4
+    public Caesar() {
5
+
6
+    }
7
+
8
+    public Caesar(int shift) {
9
+        this.shift = shift;
10
+        this.shifted = rotateByNumber(alpha, shift);
11
+
12
+    }
13
+
14
+    public static String rotateByNumber (String input, int number) {
15
+
16
+        return input.substring(number) + input.substring(0, number);
17
+    }
18
+
19
+}

+ 102
- 0
Crypto/src/test/java/CaesarTest.java 查看文件

@@ -0,0 +1,102 @@
1
+import org.junit.Assert;
2
+import org.junit.Test;
3
+
4
+import static org.junit.Assert.*;
5
+
6
+public class CaesarTest {
7
+
8
+    @Test
9
+    public void rotateStringTest0() {
10
+        // Given
11
+        String s1 = "ABCDEF";
12
+        String s2 = "ABCDEF";
13
+
14
+        // When
15
+        Caesar cipher = new Caesar();
16
+        String actual = cipher.rotateByNumber(s1, 0);
17
+
18
+        // Then
19
+        assertTrue(actual.equals(s2));
20
+    }
21
+
22
+    @Test
23
+    public void rotateStringTest1() {
24
+        // Given
25
+        String s1 = "ABCDEF";
26
+        String s2 = "DEFABC";
27
+
28
+        // When
29
+        Caesar cipher = new Caesar();
30
+        String actual = cipher.rotateByNumber(s1, 3);
31
+
32
+        // Then
33
+        assertTrue(actual.equals(s2));
34
+    }
35
+
36
+    @Test
37
+    public void rotateStringTest2() {
38
+        // Given
39
+        String s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
40
+        String s2 = "NOPQRSTUVWXYZABCDEFGHIJKLM";
41
+
42
+        // When
43
+        Caesar cipher = new Caesar();
44
+        String actual = cipher.rotateByNumber(s1, 13);
45
+        System.out.println(s1);
46
+        System.out.println(actual);
47
+        // Then
48
+        assertTrue(actual.equals(s2));
49
+    }
50
+
51
+    @Test
52
+    public void cryptTest1() {
53
+        // Given
54
+        Caesar cipher = new Caesar(13);
55
+
56
+        String Q1 = "Why did the chicken cross the road?";
57
+        String A1 = "Jul qvq gur puvpxra pebff gur ebnq?";
58
+
59
+        String Q2 = "Gb trg gb gur bgure fvqr!";
60
+        String A2 = "To get to the other side!";
61
+
62
+        // When
63
+        String actual = cipher.encrypt(Q1);
64
+        System.out.println(Q1);
65
+        System.out.println(A1);
66
+        // Then
67
+        Assert.assertEquals(A1, actual);
68
+
69
+        // When
70
+        String actual2 = cipher.decrypt(Q2);
71
+        System.out.println(Q2);
72
+        System.out.println(A2);
73
+        // Then
74
+        Assert.assertEquals(A2, actual2);
75
+    }
76
+
77
+    @Test
78
+    public void cryptTest2() {
79
+        // Given
80
+        Caesar cipher = new Caesar(4);
81
+
82
+        String Q1 = "This is a test of Caesar.";
83
+        String A1 = "Xlmw mw e xiwx sj geiwev.";
84
+
85
+        String Q2 = "Ynulpo wna bqj!";
86
+        String A2 = "Crypts are fun!";
87
+
88
+        // When
89
+        String actual = cipher.encrypt(Q1);
90
+        System.out.println(Q1);
91
+        System.out.println(A1);
92
+        // Then
93
+        Assert.assertEquals(A1, actual);
94
+
95
+        // When
96
+        String actual2 = cipher.decrypt(Q2);
97
+        System.out.println(Q2);
98
+        System.out.println(A2);
99
+        // Then
100
+        Assert.assertEquals(A2, actual2);
101
+    }
102
+}