github.com/Seikaijyu/gio@v0.0.1/layout/stack_test.go (about) 1 // SPDX-License-Identifier: Unlicense OR MIT 2 3 package layout 4 5 import ( 6 "image" 7 "testing" 8 9 "github.com/Seikaijyu/gio/op" 10 ) 11 12 func BenchmarkStack(b *testing.B) { 13 gtx := Context{ 14 Ops: new(op.Ops), 15 Constraints: Constraints{ 16 Max: image.Point{X: 100, Y: 100}, 17 }, 18 } 19 b.ReportAllocs() 20 b.ResetTimer() 21 22 for i := 0; i < b.N; i++ { 23 gtx.Ops.Reset() 24 25 Stack{}.Layout(gtx, 26 Expanded(emptyWidget{ 27 Size: image.Point{X: 60, Y: 60}, 28 }.Layout), 29 Stacked(emptyWidget{ 30 Size: image.Point{X: 30, Y: 30}, 31 }.Layout), 32 ) 33 } 34 } 35 36 func BenchmarkBackground(b *testing.B) { 37 gtx := Context{ 38 Ops: new(op.Ops), 39 Constraints: Constraints{ 40 Max: image.Point{X: 100, Y: 100}, 41 }, 42 } 43 b.ReportAllocs() 44 b.ResetTimer() 45 46 for i := 0; i < b.N; i++ { 47 gtx.Ops.Reset() 48 49 Background{}.Layout(gtx, 50 emptyWidget{ 51 Size: image.Point{X: 60, Y: 60}, 52 }.Layout, 53 emptyWidget{ 54 Size: image.Point{X: 30, Y: 30}, 55 }.Layout, 56 ) 57 } 58 } 59 60 type emptyWidget struct { 61 Size image.Point 62 } 63 64 func (w emptyWidget) Layout(gtx Context) Dimensions { 65 return Dimensions{Size: w.Size} 66 }