Sha256: 96bc97875b86ec1883c4c8b90be5b56dd3a9e04fc078fb4aa57cdc456d54afbd

Contents?: true

Size: 1.34 KB

Versions: 177

Compression:

Stored size: 1.34 KB

Contents

package diffsquares

import "testing"

const targetTestVersion = 1

var tests = []struct{ n, sqOfSums, sumOfSq int }{
	{5, 225, 55},
	{10, 3025, 385},
	{100, 25502500, 338350},
}

func TestTestVersion(t *testing.T) {
	if testVersion != targetTestVersion {
		t.Fatalf("Found testVersion = %v, want %v", testVersion, targetTestVersion)
	}
}

func TestSquareOfSums(t *testing.T) {
	for _, test := range tests {
		if s := SquareOfSums(test.n); s != test.sqOfSums {
			t.Fatalf("SquareOfSums(%d) = %d, want %d", test.n, s, test.sqOfSums)
		}
	}
}

func TestSumOfSquares(t *testing.T) {
	for _, test := range tests {
		if s := SumOfSquares(test.n); s != test.sumOfSq {
			t.Fatalf("SumOfSquares(%d) = %d, want %d", test.n, s, test.sumOfSq)
		}
	}
}

func TestDifference(t *testing.T) {
	for _, test := range tests {
		want := test.sqOfSums - test.sumOfSq
		if s := Difference(test.n); s != want {
			t.Fatalf("Difference(%d) = %d, want %d", test.n, s, want)
		}
	}
}

// Benchmark functions on just a single number (100, from the original PE problem)
// to avoid overhead of iterating over tests.
func BenchmarkSquareOfSums(b *testing.B) {
	for i := 0; i < b.N; i++ {
		SquareOfSums(100)
	}
}

func BenchmarkSumOfSquares(b *testing.B) {
	for i := 0; i < b.N; i++ {
		SumOfSquares(100)
	}
}

func BenchmarkDifference(b *testing.B) {
	for i := 0; i < b.N; i++ {
		Difference(100)
	}
}

Version data entries

177 entries across 177 versions & 1 rubygems

Version Path
trackler-2.1.0.39 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.38 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.37 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.36 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.34 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.33 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.32 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.31 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.30 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.29 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.28 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.27 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.26 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.25 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.24 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.23 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.22 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.21 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.20 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go
trackler-2.1.0.19 tracks/go/exercises/difference-of-squares/difference_of_squares_test.go