summaryrefslogtreecommitdiff
path: root/caesar_test.go
diff options
context:
space:
mode:
authorBen Burwell <ben@benburwell.com>2019-09-17 23:08:46 -0400
committerBen Burwell <ben@benburwell.com>2019-09-17 23:08:46 -0400
commita3a1e9decb6a5e36b76c9c7e1a149db81c60bd6e (patch)
treeca2236e5e66183e415d93b41ee9c9b019c6a362f /caesar_test.go
parent679a62a9407c09be0cfb4e22455dca5ae694ce01 (diff)
add examples, fix bug
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")
+ }
+}