diff options
author | Ben Burwell <ben@benburwell.com> | 2019-09-17 23:08:46 -0400 |
---|---|---|
committer | Ben Burwell <ben@benburwell.com> | 2019-09-17 23:08:46 -0400 |
commit | a3a1e9decb6a5e36b76c9c7e1a149db81c60bd6e (patch) | |
tree | ca2236e5e66183e415d93b41ee9c9b019c6a362f /caesar_test.go | |
parent | 679a62a9407c09be0cfb4e22455dca5ae694ce01 (diff) |
add examples, fix bug
Diffstat (limited to 'caesar_test.go')
-rw-r--r-- | caesar_test.go | 57 |
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") + } +} |