package codec import ( "testing" "github.com/stretchr/testify/assert" ) type lipmaaLinkExample struct { input, expected uint } func Test_lipmaaLink(t *testing.T) { tt := []lipmaaLinkExample{ lipmaaLinkExample{0, 0}, lipmaaLinkExample{1, 0}, lipmaaLinkExample{2, 1}, lipmaaLinkExample{3, 2}, lipmaaLinkExample{4, 1}, lipmaaLinkExample{5, 4}, lipmaaLinkExample{6, 5}, lipmaaLinkExample{7, 6}, lipmaaLinkExample{8, 4}, lipmaaLinkExample{13, 4}, } for _, td := range tt { assert.Equal(t, td.expected, lipmaaLink(td.input)) } // for _, td := range tt { // assert.Equal(t, td.expected, lipmaaLink2(td.input)) // } } type lipmaaLSExample struct { l, d uint expected []uint } func TestCalculateLipmaaLayerSequence_fromzero(t *testing.T) { tt := []lipmaaLSExample{} var v, l, d uint = 0, 1, 10 s := []uint{0} for l < d { tl := lipmaaLSExample{l, l, s} tt = append(tt, tl) v = (v * 3) + 1 s = append(s, v) l++ } for _, td := range tt { a := CalculateLipmaaLayerSequence(td.l, td.d, []uint{}) assert.Equal(t, td.expected, a) } } func BenchmarkCalulatedLipmaaLayerSequence(b *testing.B) { for i := 0; i < b.N; i++ { b.Run("depth=10", newBenchmarkCalulatedLipmaaLayerSequence(10)) b.Run("depth=1000", newBenchmarkCalulatedLipmaaLayerSequence(1000)) b.Run("depth=100000", newBenchmarkCalulatedLipmaaLayerSequence(100000)) b.Run("depth=1000000", newBenchmarkCalulatedLipmaaLayerSequence(1000000)) } } func newBenchmarkCalulatedLipmaaLayerSequence(d uint) func(b *testing.B) { return func(b *testing.B) { var seq []uint b.ResetTimer() seq = CalculateLipmaaLayerSequence(1, d, seq) } }