48 lines
813 B
Go
48 lines
813 B
Go
package iteration
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
)
|
|
|
|
func TestRepeat(t *testing.T) {
|
|
t.Run("RepeatFive a", func(t *testing.T) {
|
|
got := RepeatFive("a")
|
|
want := "aaaaa"
|
|
assertResult(t, got, want)
|
|
})
|
|
t.Run("RepeatFive z", func(t *testing.T) {
|
|
got := RepeatFive("z")
|
|
want := "zzzzz"
|
|
assertResult(t, got, want)
|
|
})
|
|
t.Run("repeat z, 11 times", func(t *testing.T) {
|
|
got := Repeat("z", 11)
|
|
want := "zzzzzzzzzzz"
|
|
assertResult(t, got, want)
|
|
})
|
|
}
|
|
|
|
func ExampleRepeatFive() {
|
|
fmt.Println(RepeatFive("y"))
|
|
// Output: yyyyy
|
|
}
|
|
|
|
func ExampleRepeat() {
|
|
fmt.Println(Repeat("t", 7))
|
|
// Output: ttttttt
|
|
}
|
|
|
|
func assertResult(t testing.TB, got, want string) {
|
|
t.Helper()
|
|
if got != want {
|
|
t.Errorf("got %q want %q", got, want)
|
|
}
|
|
}
|
|
|
|
func BenchmarkRepeat(b *testing.B) {
|
|
for b.Loop() {
|
|
RepeatFive("a")
|
|
}
|
|
}
|