From cb26678c66009811b3449ad83aede0be5a851bfd Mon Sep 17 00:00:00 2001 From: Fabian Becker Date: Mon, 3 Jan 2022 17:17:02 +0100 Subject: [PATCH] Add iteration package --- iteration/repeat.go | 16 ++++++++++++++++ iteration/repeat_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 iteration/repeat.go create mode 100644 iteration/repeat_test.go diff --git a/iteration/repeat.go b/iteration/repeat.go new file mode 100644 index 0000000..40d24b1 --- /dev/null +++ b/iteration/repeat.go @@ -0,0 +1,16 @@ +package iteration + +import "strings" + +func Repeat(character string, count int) string { + var repeated string + + for i := 0; i < count; i++ { + repeated += character + } + return repeated +} + +func StringsRepeat(s string, count int) string { + return strings.Repeat(s, count) +} diff --git a/iteration/repeat_test.go b/iteration/repeat_test.go new file mode 100644 index 0000000..dc7357e --- /dev/null +++ b/iteration/repeat_test.go @@ -0,0 +1,32 @@ +package iteration + +import ( + "fmt" + "testing" +) + +func TestRepeat(t *testing.T) { + repeated := Repeat("a", 5) + expected := "aaaaa" + + if repeated != expected { + t.Errorf("expected %v, got %v", expected, repeated) + } +} + +func BenchmarkRepeat(b *testing.B) { + for i := 0; i < b.N; i++ { + Repeat("a", 5) + } +} +func BenchmarkStringsRepeat(b *testing.B) { + for i := 0; i < b.N; i++ { + StringsRepeat("a", 5) + } +} + +func ExampleRepeat() { + data := Repeat("a", 5) + fmt.Println(data) + // Outputs: aaaaa +}