WIP components (as built)
This commit is contained in:
112 files changed
+3607
-1241
No files matched your search
@@ -0,0 +1,71 @@
|
||||
package mujica
|
||||
|
||||
import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/egoist/mygo/ui"
|
||||
)
|
||||
|
||||
func TestCompareSymbolPercentAndRemove(t *testing.T) {
|
||||
candles := sampleCandles(100)
|
||||
view := MarketView{Count: 50}
|
||||
eth := make([]float64, 100)
|
||||
for i := range eth {
|
||||
eth[i] = 20 + float64(i)*0.1
|
||||
}
|
||||
cmp := []CompareSymbol{{Name: "ETH", Closes: eth}}
|
||||
removed := 0
|
||||
tt := ui.NewTester(func(c *ui.Context) {
|
||||
Use(c, Settings{})
|
||||
if CompareLegend(c, &cmp).Changed() {
|
||||
removed++
|
||||
}
|
||||
CandlestickChart(c, candles, &view, CandlestickOptions{Frame: ChartFrame{Label: "BTC"}, Compare: &cmp})
|
||||
}, 800, 420)
|
||||
tt.Key(0, ui.KeyTab) // remove ETH
|
||||
tt.Key(0, ui.KeyTab) // the chart
|
||||
tt.Key(0, ui.KeyEnd)
|
||||
// Normalized from the first shown candle, index 50: (29.9/25 - 1) = 19.6%.
|
||||
want := "ETH 19.60"
|
||||
found := false
|
||||
for _, s := range tt.Texts() {
|
||||
found = found || strings.Contains(s, want)
|
||||
}
|
||||
if !found {
|
||||
t.Fatalf("readout lacks %q: %q", want, tt.Texts())
|
||||
}
|
||||
if err := tt.Click("Remove ETH"); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if len(cmp) != 0 || removed != 1 {
|
||||
t.Fatalf("remove: %v %d", cmp, removed)
|
||||
}
|
||||
defer func() {
|
||||
if recover() == nil {
|
||||
t.Fatal("short closes accepted")
|
||||
}
|
||||
}()
|
||||
bad := []CompareSymbol{{Name: "X", Closes: []float64{1}}}
|
||||
ui.NewTester(func(c *ui.Context) {
|
||||
Use(c, Settings{})
|
||||
CandlestickChart(c, candles, &view, CandlestickOptions{Frame: ChartFrame{Label: "x"}, Compare: &bad})
|
||||
}, 300, 200)
|
||||
}
|
||||
|
||||
func TestCompareSymbolSnapshot(t *testing.T) {
|
||||
candles := sampleCandles(100)
|
||||
view := MarketView{Count: 80}
|
||||
eth, sol := make([]float64, 100), make([]float64, 100)
|
||||
for i := range eth {
|
||||
eth[i] = 20 + float64(i)*0.08 + float64(i%7)*0.2
|
||||
sol[i] = 5 - float64(i)*0.01 + float64(i%5)*0.05
|
||||
}
|
||||
cmp := []CompareSymbol{{Name: "ETH", Closes: eth}, {Name: "SOL", Closes: sol}}
|
||||
snapshot(t, "compare_symbol", 640, 360, func(c *ui.Context) {
|
||||
ui.Column(c).Padding(12).Gap(8).Children(func() {
|
||||
CompareLegend(c, &cmp)
|
||||
CandlestickChart(c, candles, &view, CandlestickOptions{Frame: ChartFrame{Label: "BTC", Height: 240}, Type: ChartLine, Compare: &cmp})
|
||||
})
|
||||
})
|
||||
}
|
||||
Reference in new issue
Block a user