Sha256: 828f1e947ef0c401728da92b221e693f4ae984d2a8d50d37354e5eacfd129dd4

Contents?: true

Size: 1017 Bytes

Versions: 74

Compression:

Stored size: 1017 Bytes

Contents

package reverse

import (
	"testing"
	"testing/quick"
)

func TestReverse(t *testing.T) {
	for _, testCase := range append(testCases, multiByteCases...) {
		if res := String(testCase.input); res != testCase.expected {
			t.Fatalf("FAIL: %s(%s)\nExpected: %q\nActual: %q",
				testCase.description, testCase.input, testCase.expected, res)
		}
		t.Logf("PASS: %s", testCase.description)
	}
}

func TestReverseOfReverse(t *testing.T) {
	assertion := func(s string) bool {
		return s == String(String(s))
	}
	if err := quick.Check(assertion, nil); err != nil {
		t.Fatal(err)
	}
}

func BenchmarkReverse(b *testing.B) {
	for i := 0; i < b.N; i++ {
		for _, test := range testCases {
			String(test.input)
		}
	}
}

// mutiByteCases adds UTF-8 multi-byte case,
// since the canonical-data.json (generator data source for cases_test.go)
// doesn't have any such cases.
var multiByteCases = []reverseTestCase{
	{
		description: "a multi-byte test case",
		input:       "Hello, 世界",
		expected:    "界世 ,olleH",
	},
}

Version data entries

74 entries across 74 versions & 1 rubygems

Version Path
trackler-2.2.1.180 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.179 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.178 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.177 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.176 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.175 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.174 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.173 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.172 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.171 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.170 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.169 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.167 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.166 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.165 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.164 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.163 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.162 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.161 tracks/go/exercises/reverse-string/reverse_string_test.go
trackler-2.2.1.160 tracks/go/exercises/reverse-string/reverse_string_test.go