/
githubmirror
/
hugo
Обзор
Документация
Войти
/
githubmirror
/
hugo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
common/collections/stack_test.go
77 строк
1 KB
Bjørn Erik Pedersen
Allow partials to work as decorators
30 дек 2025, 17:58
30 дек 2025, 17:58
7c19c19
Код
Авторство
О чём код?
package collections import ( "testing" qt "github.com/frankban/quicktest" ) func TestNewStack(t *testing.T) { t.Parallel() c := qt.New(t) s := NewStackThreadSafe[int]() c.Assert(s, qt.IsNotNil) } func TestStackBasic(t *testing.T) { t.Parallel() c := qt.New(t) s := NewStackThreadSafe[int]() c.Assert(s.Len(), qt.Equals, 0) s.Push(1) s.Push(2) s.Push(3) c.Assert(s.Len(), qt.Equals, 3) top, ok := s.Peek() c.Assert(ok, qt.Equals, true) c.Assert(top, qt.Equals, 3) popped, ok := s.Pop() c.Assert(ok, qt.Equals, true) c.Assert(popped, qt.Equals, 3) c.Assert(s.Len(), qt.Equals, 2) _, _ = s.Pop() _, _ = s.Pop() _, ok = s.Pop() c.Assert(ok, qt.Equals, false) } func TestStackDrain(t *testing.T) { t.Parallel() c := qt.New(t) s := NewStackThreadSafe[string]() s.Push("a") s.Push("b") got := s.Drain() c.Assert(got, qt.DeepEquals, []string{"a", "b"}) c.Assert(s.Len(), qt.Equals, 0) } func TestStackDrainMatching(t *testing.T) { t.Parallel() c := qt.New(t) s := NewStackThreadSafe[int]() s.Push(1) s.Push(2) s.Push(3) s.Push(4) got := s.DrainMatching(func(v int) bool { return v%2 == 0 }) c.Assert(got, qt.DeepEquals, []int{4, 2}) c.Assert(s.Drain(), qt.DeepEquals, []int{1, 3}) }