43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package mujica
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/egoist/mygo/ui"
|
|
)
|
|
|
|
func TestSpreadIndicatorValueAndThreshold(t *testing.T) {
|
|
bid, ask := 99.95, 100.05
|
|
tt := tradingTester(GreenUp, 400, 100, func(c *ui.Context) {
|
|
SpreadIndicator(c, bid, ask, SpreadIndicatorOptions{WarnPercent: 0.5})
|
|
})
|
|
if !tt.HasText("0.10 (0.100%)") || tt.HasText("Wide spread") {
|
|
t.Fatalf("narrow: %q", tt.Texts())
|
|
}
|
|
ask = 101
|
|
tt.Frame()
|
|
if !tt.HasText("Wide spread") {
|
|
t.Fatalf("wide: %q", tt.Texts())
|
|
}
|
|
ask = 99
|
|
tt.Frame()
|
|
if !tt.HasText("Crossed market") {
|
|
t.Fatalf("crossed: %q", tt.Texts())
|
|
}
|
|
defer func() {
|
|
if recover() == nil {
|
|
t.Fatal("negative threshold accepted")
|
|
}
|
|
}()
|
|
tradingTester(GreenUp, 100, 100, func(c *ui.Context) { SpreadIndicator(c, 1, 2, SpreadIndicatorOptions{WarnPercent: -1}) })
|
|
}
|
|
|
|
func TestSpreadIndicatorSnapshot(t *testing.T) {
|
|
snapshot(t, "spread_indicator", 380, 100, func(c *ui.Context) {
|
|
ui.Column(c).Padding(20).Gap(10).Children(func() {
|
|
SpreadIndicator(c, 99.95, 100.05, SpreadIndicatorOptions{WarnPercent: 0.5})
|
|
SpreadIndicator(c, 99, 101, SpreadIndicatorOptions{WarnPercent: 0.5})
|
|
})
|
|
})
|
|
}
|