exercism/go/isogram/isogram_test.go

51 lines
1007 B
Go

package isogram
import "testing"
var testCases = []struct {
word string
expected bool
}{
{"duplicates", true},
{"eleven", false},
{"subdermatoglyphic", true},
{"Alphabet", false},
{"thumbscrew-japingly", true},
{"Hjelmqvist-Gryb-Zock-Pfund-Wax", true},
{"Heizölrückstoßabdämpfung", true},
{"the quick brown fox", false},
{"Emily Jung Schwartzkopf", true},
{"éléphant", false},
}
func TestIsIsogram(t *testing.T) {
for _, c := range testCases {
if IsIsogram(c.word) != c.expected {
t.Fatalf("FAIL: Word %q, expected %v, got %v", c.word, c.expected, !c.expected)
}
t.Logf("PASS: Word %q", c.word)
}
}
func BenchmarkIsIsogram(b *testing.B) {
b.StopTimer()
for _, c := range testCases {
b.StartTimer()
for i := 0; i < b.N; i++ {
IsIsogram(c.word)
}
b.StopTimer()
}
}
const targetTestVersion = 1
func TestTestVersion(t *testing.T) {
if testVersion != targetTestVersion {
t.Errorf("Found testVersion = %v, want %v.", testVersion, targetTestVersion)
}
}