|
@@ -0,0 +1,78 @@
|
|
|
+package door
|
|
|
+
|
|
|
+import (
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func TestBarHalfStep(t *testing.T) {
|
|
|
+
|
|
|
+ // This is normally done by door init, but we're skipping that right now
|
|
|
+ Unicode = true
|
|
|
+ BOXES = BOXES_UNICODE
|
|
|
+
|
|
|
+ BarColor := ColorText("BLUE")
|
|
|
+
|
|
|
+ bar := BarLine{Line: Line{DefaultColor: BarColor}, Width: 10, Style: SOLID}
|
|
|
+ BarSolid := map[int]string{0: BarColor + " ",
|
|
|
+ 5: BarColor + " ",
|
|
|
+ 10: BarColor + "\u2588 ",
|
|
|
+ 20: BarColor + "\u2588\u2588 ",
|
|
|
+ 25: BarColor + "\u2588\u2588 ",
|
|
|
+ 50: BarColor + "\u2588\u2588\u2588\u2588\u2588 ",
|
|
|
+ 75: BarColor + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588 ",
|
|
|
+ 100: BarColor + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
|
+ }
|
|
|
+
|
|
|
+ for pct, text := range BarSolid {
|
|
|
+ bar.Percent = int64(pct * 100)
|
|
|
+ got := bar.Output()
|
|
|
+ if got != text {
|
|
|
+ t.Errorf("BarHalf: Expected %#v (%d%%), got %#v", text, pct, got)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ BarColor = ColorText("BLA ON WHI")
|
|
|
+ bar = BarLine{Line: Line{DefaultColor: BarColor}, Width: 10, Style: HALF_STEP}
|
|
|
+ BarHalf := map[int]string{0: BarColor + " ",
|
|
|
+ 5: BarColor + "\u258c ",
|
|
|
+ 6: BarColor + "\u258c ",
|
|
|
+ 10: BarColor + "\u2588 ",
|
|
|
+ 20: BarColor + "\u2588\u2588 ",
|
|
|
+ 25: BarColor + "\u2588\u2588\u258c ",
|
|
|
+ 26: BarColor + "\u2588\u2588\u258c ",
|
|
|
+ 50: BarColor + "\u2588\u2588\u2588\u2588\u2588 ",
|
|
|
+ 75: BarColor + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u258c ",
|
|
|
+ 100: BarColor + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
|
+ }
|
|
|
+
|
|
|
+ for pct, text := range BarHalf {
|
|
|
+ bar.Percent = int64(pct * 100)
|
|
|
+ got := bar.Output()
|
|
|
+ if got != text {
|
|
|
+ t.Errorf("BarHalf: Expected %#v (%d%%), got %#v", text, pct, got)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ BarColor = ColorText("RED")
|
|
|
+ bar = BarLine{Line: Line{DefaultColor: BarColor}, Width: 10, Style: GRADIENT}
|
|
|
+ BarGrad := map[int]string{0: BarColor + " ",
|
|
|
+ 3: BarColor + "\u2591 ",
|
|
|
+ 5: BarColor + "\u2592 ",
|
|
|
+ 8: BarColor + "\u2593 ",
|
|
|
+ 10: BarColor + "\u2588 ",
|
|
|
+ 20: BarColor + "\u2588\u2588 ",
|
|
|
+ 25: BarColor + "\u2588\u2588\u2592 ",
|
|
|
+ 50: BarColor + "\u2588\u2588\u2588\u2588\u2588 ",
|
|
|
+ 75: BarColor + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2592 ",
|
|
|
+ 100: BarColor + "\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2588",
|
|
|
+ }
|
|
|
+
|
|
|
+ for pct, text := range BarGrad {
|
|
|
+ bar.Percent = int64(pct * 100)
|
|
|
+ got := bar.Output()
|
|
|
+ if got != text {
|
|
|
+ t.Errorf("BarGradient: Expected %#v (%d%%), got %#v", text, pct, got)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|