--- /dev/null
+// Copyright 2020 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package completion
+
+import (
+ "testing"
+)
+
+func TestDeepCompletionIsHighScore(t *testing.T) {
+ // Test that deepCompletionState.isHighScore properly tracks the top
+ // N=MaxDeepCompletions scores.
+
+ var s deepCompletionState
+
+ if !s.isHighScore(1) {
+ // No other scores yet, anything is a winner.
+ t.Error("1 should be high score")
+ }
+
+ // Fill up with higher scores.
+ for i := 0; i < MaxDeepCompletions; i++ {
+ if !s.isHighScore(10) {
+ t.Error("10 should be high score")
+ }
+ }
+
+ // High scores should be filled with 10s so 2 is not a high score.
+ if s.isHighScore(2) {
+ t.Error("2 shouldn't be high score")
+ }
+}