summaryrefslogtreecommitdiff
path: root/caesar_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'caesar_test.go')
-rw-r--r--caesar_test.go57
1 files changed, 50 insertions, 7 deletions
diff --git a/caesar_test.go b/caesar_test.go
index 04b853b..6a01f43 100644
--- a/caesar_test.go
+++ b/caesar_test.go
@@ -6,29 +6,72 @@ import (
func TestEncode(t *testing.T) {
msg := "Attack at dawn"
+ t.Logf("testing message %s", msg)
if Encode(msg) != "Dwwdfn dw gdzq" {
t.Fail()
}
}
-func TestCaesar(t *testing.T) {
+func TestLong(t *testing.T) {
if testing.Short() {
t.Skip()
}
msg := "Attack at dawn"
- t.Logf("testing encoding message %s", msg)
encoded := Encode(msg)
if encoded == msg {
- t.Log("expected ciphertext and plaintext to differ")
- t.Fail()
+ t.Errorf("expected ciphertext and plaintext to differ")
}
decoded := Decode(encoded)
if decoded != msg {
- t.Logf("expected recovered plaintext to match message, but got: %s", decoded)
- t.Fail()
+ t.Errorf("expected recovered plaintext to match message, but got: %s", decoded)
}
}
-func BenchmarkCaesar(b *testing.B) {
+func TestEncoderTable(t *testing.T) {
+ tests := []struct {
+ in string
+ out string
+ }{
+ {"abcxyz", "defabc"},
+ {"ABCXYZ", "DEFABC"},
+ {"1234567890", "4567890123"},
+ {"!@#$%^&*()", "!@#$%^&*()"},
+ }
+ for _, test := range tests {
+ result := Encode(test.in)
+ if result != test.out {
+ t.Errorf("encode %s: expected %s, got %s", test.in, test.out, result)
+ }
+ }
+}
+
+func TestEncoderIndividualTable(t *testing.T) {
+ tests := []struct {
+ name string
+ in string
+ out string
+ }{
+ {"lowers", "abcxyz", "defabc"},
+ {"uppers", "ABCXYZ", "DEFABC"},
+ {"nums", "1234567890", "4567890123"},
+ {"symbols", "!@#$%^&*()", "!@#$%^&*()"},
+ }
+ for _, test := range tests {
+ t.Run(test.name, func(t *testing.T) {
+ result := Encode(test.in)
+ if result != test.out {
+ t.Fatalf("expected %s, got %s", test.out, result) // HL
+ }
+ })
+ }
+}
+
+func BenchmarkFailure(b *testing.B) {
b.Fail()
}
+
+func BenchmarkEncode(b *testing.B) {
+ for i := 0; i < b.N; i++ {
+ Encode("attack at dawn")
+ }
+}