From a3a1e9decb6a5e36b76c9c7e1a149db81c60bd6e Mon Sep 17 00:00:00 2001 From: Ben Burwell Date: Tue, 17 Sep 2019 23:08:46 -0400 Subject: add examples, fix bug --- caesar_test.go | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 7 deletions(-) (limited to 'caesar_test.go') 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") + } +} -- cgit v1.2.3