From 7b0dbf8da51cbbdd8c3ecd564fe32d1eae15b2c1 Mon Sep 17 00:00:00 2001 From: EuAndreh Date: Sat, 10 May 2025 07:53:23 -0300 Subject: src/gobang.go: Add Heredoc() --- src/gobang.go | 4 ++++ tests/gobang.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/gobang.go b/src/gobang.go index 8777247..3c705b7 100644 --- a/src/gobang.go +++ b/src/gobang.go @@ -76,6 +76,10 @@ var ( +func Heredoc(s string) string { + return strings.Trim(strings.ReplaceAll(s, "\t", ""), "\n") + "\n" +} + func SetOf[T comparable](values ...T) SetT[T] { s := SetT[T]{ data: map[T]struct{}{ diff --git a/tests/gobang.go b/tests/gobang.go index fe47086..7391475 100644 --- a/tests/gobang.go +++ b/tests/gobang.go @@ -15,6 +15,38 @@ import ( +func test_Heredoc() { + TestStart("Heredoc()") + + Testing("only add newline on empty string", func() { + TAssertEqual(Heredoc(""), "\n") + }) + + Testing("remove leading newline", func() { + given := Heredoc(` + Start + and + end +`) + expected := ` Start + and + end +` + + TAssertEqual(given, expected) + }) + + Testing("removes ALL tabs", func() { + given := Heredoc(` + Tab here>