83 lines
4.1 KiB
Go
83 lines
4.1 KiB
Go
|
package hw03frequencyanalysis
|
|||
|
|
|||
|
import (
|
|||
|
"testing"
|
|||
|
|
|||
|
"github.com/stretchr/testify/require"
|
|||
|
)
|
|||
|
|
|||
|
// Change to true if needed.
|
|||
|
var taskWithAsteriskIsCompleted = false
|
|||
|
|
|||
|
var text = `Как видите, он спускается по лестнице вслед за своим
|
|||
|
другом Кристофером Робином, головой вниз, пересчитывая
|
|||
|
ступеньки собственным затылком: бум-бум-бум. Другого способа
|
|||
|
сходить с лестницы он пока не знает. Иногда ему, правда,
|
|||
|
кажется, что можно бы найти какой-то другой способ, если бы он
|
|||
|
только мог на минутку перестать бумкать и как следует
|
|||
|
сосредоточиться. Но увы - сосредоточиться-то ему и некогда.
|
|||
|
Как бы то ни было, вот он уже спустился и готов с вами
|
|||
|
познакомиться.
|
|||
|
- Винни-Пух. Очень приятно!
|
|||
|
Вас, вероятно, удивляет, почему его так странно зовут, а
|
|||
|
если вы знаете английский, то вы удивитесь еще больше.
|
|||
|
Это необыкновенное имя подарил ему Кристофер Робин. Надо
|
|||
|
вам сказать, что когда-то Кристофер Робин был знаком с одним
|
|||
|
лебедем на пруду, которого он звал Пухом. Для лебедя это было
|
|||
|
очень подходящее имя, потому что если ты зовешь лебедя
|
|||
|
громко: "Пу-ух! Пу-ух!"- а он не откликается, то ты всегда
|
|||
|
можешь сделать вид, что ты просто понарошку стрелял; а если ты
|
|||
|
звал его тихо, то все подумают, что ты просто подул себе на
|
|||
|
нос. Лебедь потом куда-то делся, а имя осталось, и Кристофер
|
|||
|
Робин решил отдать его своему медвежонку, чтобы оно не пропало
|
|||
|
зря.
|
|||
|
А Винни - так звали самую лучшую, самую добрую медведицу
|
|||
|
в зоологическом саду, которую очень-очень любил Кристофер
|
|||
|
Робин. А она очень-очень любила его. Ее ли назвали Винни в
|
|||
|
честь Пуха, или Пуха назвали в ее честь - теперь уже никто не
|
|||
|
знает, даже папа Кристофера Робина. Когда-то он знал, а теперь
|
|||
|
забыл.
|
|||
|
Словом, теперь мишку зовут Винни-Пух, и вы знаете почему.
|
|||
|
Иногда Винни-Пух любит вечерком во что-нибудь поиграть, а
|
|||
|
иногда, особенно когда папа дома, он больше любит тихонько
|
|||
|
посидеть у огня и послушать какую-нибудь интересную сказку.
|
|||
|
В этот вечер...`
|
|||
|
|
|||
|
func TestTop10(t *testing.T) {
|
|||
|
t.Run("no words in empty string", func(t *testing.T) {
|
|||
|
require.Len(t, Top10(""), 0)
|
|||
|
})
|
|||
|
|
|||
|
t.Run("positive test", func(t *testing.T) {
|
|||
|
if taskWithAsteriskIsCompleted {
|
|||
|
expected := []string{
|
|||
|
"а", // 8
|
|||
|
"он", // 8
|
|||
|
"и", // 6
|
|||
|
"ты", // 5
|
|||
|
"что", // 5
|
|||
|
"в", // 4
|
|||
|
"его", // 4
|
|||
|
"если", // 4
|
|||
|
"кристофер", // 4
|
|||
|
"не", // 4
|
|||
|
}
|
|||
|
require.Equal(t, expected, Top10(text))
|
|||
|
} else {
|
|||
|
expected := []string{
|
|||
|
"он", // 8
|
|||
|
"а", // 6
|
|||
|
"и", // 6
|
|||
|
"ты", // 5
|
|||
|
"что", // 5
|
|||
|
"-", // 4
|
|||
|
"Кристофер", // 4
|
|||
|
"если", // 4
|
|||
|
"не", // 4
|
|||
|
"то", // 4
|
|||
|
}
|
|||
|
require.Equal(t, expected, Top10(text))
|
|||
|
}
|
|||
|
})
|
|||
|
}
|