diff --git a/.travis.yml b/.travis.yml index b20b9c4aa..05f6591dc 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,4 +9,4 @@ before_install: - export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/senorprogrammer/wtf - cd $HOME/gopath/src/github.com/senorprogrammer/wtf -script: go get ./... && go get github.com/go-test/deep && go test -v github.com/senorprogrammer/wtf/wtf_tests +script: go get ./... && go get github.com/go-test/deep && go test -v github.com/senorprogrammer/wtf/wtf_tests/... diff --git a/_sample_configs/bargraph_config.yml b/_sample_configs/bargraph_config.yml index f3a4d9c07..c70bc2aab 100644 --- a/_sample_configs/bargraph_config.yml +++ b/_sample_configs/bargraph_config.yml @@ -14,9 +14,9 @@ wtf: graphIcon: "💀" graphStars: 25 position: - top: 3 + top: 2 left: 0 - height: 1 + height: 2 width: 2 refreshInterval: 30 updateInterval: 15 diff --git a/wtf/bargraph.go b/wtf/bargraph.go index b7a6dae8e..7a1a5e9ea 100644 --- a/wtf/bargraph.go +++ b/wtf/bargraph.go @@ -103,6 +103,12 @@ func (widget *BarGraph) addView() { // time should be passed as a int64 func (widget *BarGraph) BuildBars(data [][2]int64) { + widget.View.SetText(BuildStars(data, widget.maxStars, widget.starChar)) + +} + +//BuildStars build the string to display +func BuildStars(data [][2]int64, maxStars int, starChar string) string { var buffer bytes.Buffer //counter to inintialize min value @@ -138,7 +144,7 @@ func (widget *BarGraph) BuildBars(data [][2]int64) { } // each number = how many stars? - var starRatio = float64(widget.maxStars) / float64((maxValue - minValue)) + var starRatio = float64(maxStars) / float64((maxValue - minValue)) //build the stars for i := range data { @@ -151,7 +157,7 @@ func (widget *BarGraph) BuildBars(data [][2]int64) { starCount = 1 } //build the actual string - var stars = strings.Repeat(widget.starChar, starCount) + var stars = strings.Repeat(starChar, starCount) //parse the time var t = time.Unix(int64(data[i][1]/1000), 0) @@ -160,8 +166,7 @@ func (widget *BarGraph) BuildBars(data [][2]int64) { buffer.WriteString(fmt.Sprintf("%s -\t [red]%s[white] - (%d)\n", t.Format("Jan 02, 2006"), stars, val)) } - widget.View.SetText(buffer.String()) - + return buffer.String() } /* -------------------- Exported Functions -------------------- */ diff --git a/wtf_tests/bargraph/bargraph_test.go b/wtf_tests/bargraph/bargraph_test.go new file mode 100644 index 000000000..3135c9255 --- /dev/null +++ b/wtf_tests/bargraph/bargraph_test.go @@ -0,0 +1,33 @@ +package bargraphtests + +import ( + "testing" + + . "github.com/senorprogrammer/wtf/wtf" + . "github.com/stretchr/testify/assert" +) + +// MakeData - Create sample data +func makeData() [][2]int64 { + + //this could come from config + const lineCount = 2 + var stats [lineCount][2]int64 + + stats[0][1] = 1530122942 + stats[0][0] = 100 + + stats[1][1] = 1530132942 + stats[1][0] = 210 + + return stats[:] + +} + +//TestOutput of the bargraph make string (BuildStars) function +func TestOutput(t *testing.T) { + + result := BuildStars(makeData(), 20, "*") + + Equal(t, result, "Jan 18, 1970 -\t [red]*[white] - (100)\nJan 18, 1970 -\t [red]********************[white] - (210)\n") +}