Sha256: aaa2f5ecc7576bf71201fc253f732d5bb75336488cc8e2830abd4574df9403dc

Contents?: true

Size: 1.44 KB

Versions: 84

Compression:

Stored size: 1.44 KB

Contents

package wordsearch

import (
	"reflect"
	"testing"
)

// Define a function Solve(words []string, puzzle []string) (map[string][2][2]int, error).
//
// Also define a testVersion with a value that matches
// the targetTestVersion here.

const targetTestVersion = 3

var words = []string{
	"clojure", "ecmascript", "elixir", "go", "java", "lisp",
	"ocaml", "ruby", "rust", "scheme",
}

var puzzle = []string{
	"gefblpepre",
	"cbmdcimguc",
	"oikoknrjsm",
	"pbwjrqrota",
	"rixilelhgs",
	"woncqlispc",
	"schemekmgr",
	"alxhprubyi",
	"javaocamlp",
	"clojurermt",
}

// Top left corner is (0, 0)
// Entries are {{firstX, firstY}, {lastX, lastY}}.
var positions = map[string][2][2]int{
	"clojure":    {{0, 9}, {6, 9}},
	"ecmascript": {{9, 0}, {9, 9}},
	"elixir":     {{5, 4}, {0, 4}},
	"go":         {{8, 4}, {7, 3}},
	"java":       {{0, 8}, {3, 8}},
	"lisp":       {{5, 5}, {8, 5}},
	"ocaml":      {{4, 8}, {8, 8}},
	"ruby":       {{5, 7}, {8, 7}},
	"rust":       {{8, 0}, {8, 3}},
	"scheme":     {{0, 6}, {5, 6}},
}

func TestSolve(t *testing.T) {
	if testVersion != targetTestVersion {
		t.Fatalf("Found testVersion = %v, want %v", testVersion, targetTestVersion)
	}
	actual, err := Solve(words, puzzle)
	if err != nil {
		var _ error = err
		t.Fatalf("Didn't expect error but got %v", err)
	}
	if !reflect.DeepEqual(actual, positions) {
		t.Fatalf("Got %v, want %v", actual, positions)
	}
}

func BenchmarkSolve(b *testing.B) {
	for i := 0; i < b.N; i++ {
		Solve(words, puzzle)
	}
}

Version data entries

84 entries across 84 versions & 1 rubygems

Version Path
trackler-2.0.6.28 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.27 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.26 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.25 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.24 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.23 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.22 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.21 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.20 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.19 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.18 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.17 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.16 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.15 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.14 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.13 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.12 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.11 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.10 tracks/go/exercises/word-search/word_search_test.go
trackler-2.0.6.9 tracks/go/exercises/word-search/word_search_test.go