1
0
Fork 0
This commit is contained in:
Arthur K. 2026-05-14 11:24:48 +03:00
commit 7a6b109e78
Signed by: wzray
GPG key ID: B97F30FDC4636357
4 changed files with 164 additions and 0 deletions

View file

@ -0,0 +1,76 @@
package counter
import (
"reflect"
"strings"
"testing"
)
func TestCount(t *testing.T) {
t.Parallel()
counts, err := Count(strings.NewReader("Алена\nМиша\nАлена\nДима\n\n"))
if err != nil {
t.Fatalf("Count() error = %v", err)
}
want := map[string]int{
"Алена": 2,
"Миша": 1,
"Дима": 1,
}
if !reflect.DeepEqual(counts, want) {
t.Fatalf("Count() = %#v, want %#v", counts, want)
}
}
func TestCountPreservesSpaces(t *testing.T) {
t.Parallel()
counts, err := Count(strings.NewReader("Anna\n Anna \nAnna\n"))
if err != nil {
t.Fatalf("Count() error = %v", err)
}
want := map[string]int{
"Anna": 2,
" Anna ": 1,
}
if !reflect.DeepEqual(counts, want) {
t.Fatalf("Count() = %#v, want %#v", counts, want)
}
}
func TestCountEmptyInput(t *testing.T) {
t.Parallel()
counts, err := Count(strings.NewReader("\n\n"))
if err != nil {
t.Fatalf("Count() error = %v", err)
}
if len(counts) != 0 {
t.Fatalf("Count() = %#v, want empty map", counts)
}
}
func TestSorted(t *testing.T) {
t.Parallel()
counts := map[string]int{
"Миша": 1,
"Алена": 2,
"Дима": 1,
}
got := Sorted(counts)
want := []Result{
{Name: "Алена", Count: 2},
{Name: "Дима", Count: 1},
{Name: "Миша", Count: 1},
}
if !reflect.DeepEqual(got, want) {
t.Fatalf("Sorted() = %#v, want %#v", got, want)
}
}