Something went wrong. Try again.
web frontend for git repositories, written in Go git.pocka.jp/legit.git
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374// Copyright 2026 Shota FUJI <pockawoooh@gmail.com>// SPDX-License-Identifier: MIT
package git
import ( "slices" "testing")
func TestRingBufferUnfilledOK(t *testing.T) { q := newRingBuffer[int](5) q.push(1) q.push(2) q.push(3)
s := q.toSlice()
if len(s) != 3 { t.Errorf("Expected slice length of 3, got %d", len(s)) }
if !slices.Equal(s, []int{1, 2, 3}) { t.Error("Incorrect slice returned") }}
func TestRingBufferWrapping(t *testing.T) { q := newRingBuffer[int](5) for i := range 8 { q.push(i + 1) }
s := q.toSlice()
if len(s) != 5 { t.Errorf("Expected slice length of 5, got %d", len(s)) }
if !slices.Equal(s, []int{4, 5, 6, 7, 8}) { t.Error("Incorrect slice returned") }}
func TestRingBufferNotCrashingOnEmptySlice(t *testing.T) { q := newRingBuffer[int](5) s := q.toSlice()
if len(s) != 0 { t.Errorf("Expected slice length of 0, got %d", len(s)) }
if !slices.Equal(s, []int{}) { t.Error("Incorrect slice returned") }}
func TestRingBufferManyRounds(t *testing.T) { q := newRingBuffer[int](3) for i := range 12 { q.push(i + 1) }
s := q.toSlice()
if len(s) != 3 { t.Errorf("Expected slice length of 3, got %d", len(s)) }
if !slices.Equal(s, []int{10, 11, 12}) { t.Error("Incorrect slice returned") }}