// 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 range MaxDeepCompletions {
		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")
	}
}
