Sha256: 25e8d1949f2e42c73ec685e1ee39ea00443373edae122a61c85bcee0ad885987

Contents?: true

Size: 1.07 KB

Versions: 81

Compression:

Stored size: 1.07 KB

Contents

package accumulate

import (
	"fmt"
	"strings"
	"testing"
)

func echo(c string) string {
	return c
}

func capitalize(word string) string {
	return strings.Title(word)
}

var tests = []struct {
	expected    []string
	given       []string
	converter   func(string) string
	description string
}{
	{[]string{}, []string{}, echo, "echo"},
	{[]string{"echo", "echo", "echo", "echo"}, []string{"echo", "echo", "echo", "echo"}, echo, "echo"},
	{[]string{"First", "Letter", "Only"}, []string{"first", "letter", "only"}, capitalize, "capitalize"},
	{[]string{"HELLO", "WORLD"}, []string{"hello", "world"}, strings.ToUpper, "strings.ToUpper"},
}

func TestAccumulate(t *testing.T) {
	for _, test := range tests {
		actual := Accumulate(test.given, test.converter)
		if fmt.Sprintf("%q", actual) != fmt.Sprintf("%q", test.expected) {
			t.Fatalf("Accumulate(%q, %q): expected %q, actual %q", test.given, test.description, test.expected, actual)
		}
	}
}

func BenchmarkAccumulate(b *testing.B) {
	for i := 0; i < b.N; i++ {

		for _, test := range tests {
			Accumulate(test.given, test.converter)
		}

	}
}

Version data entries

81 entries across 81 versions & 1 rubygems

Version Path
trackler-2.2.1.119 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.118 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.117 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.116 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.115 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.114 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.113 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.111 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.110 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.109 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.108 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.107 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.106 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.105 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.104 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.103 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.102 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.101 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.100 tracks/go/exercises/accumulate/accumulate_test.go
trackler-2.2.1.99 tracks/go/exercises/accumulate/accumulate_test.go