package detector

import "testing"

func TestDetectKnownLanguages(t *testing.T) {
	t.Parallel()
	d := New()
	cases := []struct {
		name string
		text string
		want string
	}{
		{
			name: "english paragraph",
			text: "The trade agreement should be signed before the next turn. " +
				"I expect a written response by the time the engine generates the next report.",
			want: "en",
		},
		{
			name: "russian paragraph",
			text: "Привет! Я предлагаю заключить дипломатическое соглашение и провести " +
				"совместную операцию по освоению гиперпространственных маршрутов. " +
				"Жду твоего письменного ответа до конца следующего хода игры, " +
				"чтобы мы успели согласовать детали и подписать договор вовремя.",
			want: "ru",
		},
	}
	for _, tc := range cases {
		tc := tc
		t.Run(tc.name, func(t *testing.T) {
			t.Parallel()
			got := d.Detect(tc.text)
			if got != tc.want {
				t.Fatalf("Detect = %q, want %q", got, tc.want)
			}
		})
	}
}

func TestDetectShortOrEmpty(t *testing.T) {
	t.Parallel()
	d := New()
	short := []string{"", "hi", "    "}
	for _, s := range short {
		if got := d.Detect(s); got != Undetermined {
			t.Errorf("Detect(%q) = %q, want %q", s, got, Undetermined)
		}
	}
}
