func BenchmarkFIFODequeue100MultipleGRs(b *testing.B) {
	b.StopTimer()
	fifo := NewFIFO()
	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			b.StopTimer()
			for c := 0; c < 100; c++ {
				fifo.Enqueue(c)
			}
			b.StartTimer()
			for c := 0; c < 100; c++ {
				fifo.Dequeue()
			}
		}
	})
}
multiple goroutines - dequeue 100 elements per gr
package goconcurrentqueue
import (
	"testing"
)
func BenchmarkFIFOEnqueueSingleGR(b *testing.B) {
	fifo := NewFIFO()
	for i := 0; i < b.N; i++ {
		fifo.Enqueue(i)
	}
}
func BenchmarkFIFOEnqueue100SingleGR(b *testing.B) {
	fifo := NewFIFO()
	for i := 0; i < b.N; i++ {
		for c := 0; c < 100; c++ {
			fifo.Enqueue(c)
		}
	}
}
func BenchmarkFIFOEnqueue100MultipleGRs(b *testing.B) {
	fifo := NewFIFO()
	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			for c := 0; c < 100; c++ {
				fifo.Enqueue(c)
			}
		}
	})
}
func BenchmarkFIFOEnqueue1000MultipleGRs(b *testing.B) {
	fifo := NewFIFO()
	b.RunParallel(func(pb *testing.PB) {
		for pb.Next() {
			for c := 0; c < 1000; c++ {
				fifo.Enqueue(c)
			}
		}
	})
}
func BenchmarkFIFOEnqueue1000SingleGR(b *testing.B) {
	fifo := NewFIFO()
	for i := 0; i < b.N; i++ {
		for c := 0; c < 1000; c++ {
			fifo.Enqueue(c)
		}
	}
}
func BenchmarkFIFODequeue100SingleGR(b *testing.B) {
	b.StopTimer()
	fifo := NewFIFO()
	for i := 0; i < b.N; i++ {
		b.StopTimer()
		for i := 0; i < 100; i++ {
			fifo.Enqueue(i)
		}
		b.StartTimer()
		for i := 0; i < 100; i++ {
			fifo.Dequeue()
		}
	}
}
func BenchmarkFIFODequeue1000SingleGR(b *testing.B) {
	b.StopTimer()
	fifo := NewFIFO()
	for i := 0; i < b.N; i++ {
		b.StopTimer()
		for i := 0; i < 1000; i++ {
			fifo.Enqueue(i)
		}
		b.StartTimer()
		for i := 0; i < 1000; i++ {
			fifo.Dequeue()
		}
	}
}