func verifyPop(t *testing.T, expectedValue int, expectedOk bool, queue *FIFO[int]) { … } func verifyEmpty(t *testing.T, queue *FIFO[int]) { … } func TestNull(t *testing.T) { … } func TestOnePushPop(t *testing.T) { … } // Pushes some elements, pops all of them, then the same again. func TestWrapAroundEmpty(t *testing.T) { … } // Pushes some elements, pops one, adds more, then pops all. func TestWrapAroundPartial(t *testing.T) { … } // Push an unusual amount of elements, pop all, and verify that // the FIFO shrinks back again. func TestShrink(t *testing.T) { … }