summaryrefslogtreecommitdiffstats
path: root/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/draw_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/draw_test.go')
-rw-r--r--dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/draw_test.go378
1 files changed, 378 insertions, 0 deletions
diff --git a/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/draw_test.go b/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/draw_test.go
new file mode 100644
index 0000000..2553ca6
--- /dev/null
+++ b/dependencies/pkg/mod/github.com/vbauerster/mpb/v6@v6.0.4/draw_test.go
@@ -0,0 +1,378 @@
+package mpb
+
+import (
+ "bytes"
+ "testing"
+ "unicode/utf8"
+)
+
+func TestDraw(t *testing.T) {
+ // key is termWidth
+ testSuite := map[int][]struct {
+ name string
+ style string
+ total int64
+ current int64
+ refill int64
+ barWidth int
+ trim bool
+ reverse bool
+ want string
+ }{
+ 0: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: "… ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "",
+ },
+ },
+ 1: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: "… ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "",
+ },
+ },
+ 2: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[]",
+ },
+ },
+ 3: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[-]",
+ },
+ },
+ 4: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " [] ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[>-]",
+ },
+ },
+ 5: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " [-] ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[>--]",
+ },
+ },
+ 6: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " [>-] ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[>---]",
+ },
+ },
+ 7: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " [>--] ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[=>---]",
+ },
+ },
+ 8: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " [>---] ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[=>----]",
+ },
+ },
+ 80: {
+ {
+ name: "t,c{60,20}",
+ total: 60,
+ current: 20,
+ want: " [========================>---------------------------------------------------] ",
+ },
+ {
+ name: "t,c{60,20}trim",
+ total: 60,
+ current: 20,
+ trim: true,
+ want: "[=========================>----------------------------------------------------]",
+ },
+ {
+ name: "t,c,bw{60,20,60}",
+ total: 60,
+ current: 20,
+ barWidth: 60,
+ want: " [==================>---------------------------------------] ",
+ },
+ {
+ name: "t,c,bw{60,20,60}trim",
+ total: 60,
+ current: 20,
+ barWidth: 60,
+ trim: true,
+ want: "[==================>---------------------------------------]",
+ },
+ },
+ 100: {
+ {
+ name: "t,c{100,0}",
+ total: 100,
+ current: 0,
+ want: " [------------------------------------------------------------------------------------------------] ",
+ },
+ {
+ name: "t,c{100,0}trim",
+ total: 100,
+ current: 0,
+ trim: true,
+ want: "[--------------------------------------------------------------------------------------------------]",
+ },
+ {
+ name: "t,c{100,1}",
+ total: 100,
+ current: 1,
+ want: " [>-----------------------------------------------------------------------------------------------] ",
+ },
+ {
+ name: "t,c{100,1}trim",
+ total: 100,
+ current: 1,
+ trim: true,
+ want: "[>-------------------------------------------------------------------------------------------------]",
+ },
+ {
+ name: "t,c{100,99}",
+ total: 100,
+ current: 99,
+ want: " [==============================================================================================>-] ",
+ },
+ {
+ name: "t,c{100,99}trim",
+ total: 100,
+ current: 99,
+ trim: true,
+ want: "[================================================================================================>-]",
+ },
+ {
+ name: "t,c{100,100}",
+ total: 100,
+ current: 100,
+ want: " [================================================================================================] ",
+ },
+ {
+ name: "t,c{100,100}trim",
+ total: 100,
+ current: 100,
+ trim: true,
+ want: "[==================================================================================================]",
+ },
+ {
+ name: "t,c,r{100,100,100}trim",
+ total: 100,
+ current: 100,
+ refill: 100,
+ trim: true,
+ want: "[++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++]",
+ },
+ {
+ name: "t,c{100,33}",
+ total: 100,
+ current: 33,
+ want: " [===============================>----------------------------------------------------------------] ",
+ },
+ {
+ name: "t,c{100,33}trim",
+ total: 100,
+ current: 33,
+ trim: true,
+ want: "[===============================>------------------------------------------------------------------]",
+ },
+ {
+ name: "t,c{100,33}trim,rev",
+ total: 100,
+ current: 33,
+ trim: true,
+ reverse: true,
+ want: "[------------------------------------------------------------------<===============================]",
+ },
+ {
+ name: "t,c,r{100,33,33}",
+ total: 100,
+ current: 33,
+ refill: 33,
+ want: " [+++++++++++++++++++++++++++++++>----------------------------------------------------------------] ",
+ },
+ {
+ name: "t,c,r{100,33,33}trim",
+ total: 100,
+ current: 33,
+ refill: 33,
+ trim: true,
+ want: "[+++++++++++++++++++++++++++++++>------------------------------------------------------------------]",
+ },
+ {
+ name: "t,c,r{100,33,33}trim,rev",
+ total: 100,
+ current: 33,
+ refill: 33,
+ trim: true,
+ reverse: true,
+ want: "[------------------------------------------------------------------<+++++++++++++++++++++++++++++++]",
+ },
+ {
+ name: "t,c,r{100,40,33}",
+ total: 100,
+ current: 40,
+ refill: 33,
+ want: " [++++++++++++++++++++++++++++++++=====>----------------------------------------------------------] ",
+ },
+ {
+ name: "t,c,r{100,40,33}trim",
+ total: 100,
+ current: 40,
+ refill: 33,
+ trim: true,
+ want: "[++++++++++++++++++++++++++++++++======>-----------------------------------------------------------]",
+ },
+ {
+ name: "t,c,r{100,40,33},rev",
+ total: 100,
+ current: 40,
+ refill: 33,
+ reverse: true,
+ want: " [----------------------------------------------------------<=====++++++++++++++++++++++++++++++++] ",
+ },
+ {
+ name: "t,c,r{100,40,33}trim,rev",
+ total: 100,
+ current: 40,
+ refill: 33,
+ trim: true,
+ reverse: true,
+ want: "[-----------------------------------------------------------<======++++++++++++++++++++++++++++++++]",
+ },
+ {
+ name: "[=の-] t,c{100,1}",
+ style: "[=の-]",
+ total: 100,
+ current: 1,
+ want: " [の---------------------------------------------------------------------------------------------…] ",
+ },
+ },
+ 197: {
+ {
+ name: "t,c,r{97486999,2805950,2805483}trim",
+ total: 97486999,
+ current: 2805950,
+ refill: 2805483,
+ barWidth: 60,
+ trim: true,
+ want: "[+>--------------------------------------------------------]",
+ },
+ },
+ }
+
+ var tmpBuf bytes.Buffer
+ for tw, cases := range testSuite {
+ for _, tc := range cases {
+ s := newTestState(tc.style, tc.reverse)
+ s.reqWidth = tc.barWidth
+ s.total = tc.total
+ s.current = tc.current
+ s.trimSpace = tc.trim
+ s.refill = tc.refill
+ tmpBuf.Reset()
+ tmpBuf.ReadFrom(s.draw(newStatistics(tw, s)))
+ by := tmpBuf.Bytes()
+
+ got := string(by[:len(by)-1])
+ if !utf8.ValidString(got) {
+ t.Fail()
+ }
+ if got != tc.want {
+ t.Errorf("termWidth:%d %q want: %q %d, got: %q %d\n", tw, tc.name, tc.want, utf8.RuneCountInString(tc.want), got, utf8.RuneCountInString(got))
+ }
+ }
+ }
+}
+
+func newTestState(style string, rev bool) *bState {
+ s := &bState{
+ filler: NewBarFillerPick(style, rev),
+ bufP: new(bytes.Buffer),
+ bufB: new(bytes.Buffer),
+ bufA: new(bytes.Buffer),
+ }
+ return s
+}