Browse Source

Stubs for tests

- Portfolio
- Position
Alexey Kim 6 months ago
parent
commit
51001330ef
3 changed files with 53 additions and 0 deletions
  1. 4 0
      go.mod
  2. 4 0
      go.sum
  3. 45 0
      strategy/portfolio_test.go

+ 4 - 0
go.mod

@@ -1,3 +1,7 @@
 module git.beejay.kim/Gshopper/sentio
 
 go 1.22.2
+
+require github.com/samber/lo v1.47.0
+
+require golang.org/x/text v0.16.0 // indirect

+ 4 - 0
go.sum

@@ -0,0 +1,4 @@
+github.com/samber/lo v1.47.0 h1:z7RynLwP5nbyRscyvcD043DWYoOcYRv3mV8lBeqOCLc=
+github.com/samber/lo v1.47.0/go.mod h1:RmDH9Ct32Qy3gduHQuKJ3gW1fMHAnE/fAzQuf6He5cU=
+golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4=
+golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI=

+ 45 - 0
strategy/portfolio_test.go

@@ -0,0 +1,45 @@
+package main
+
+import (
+	"git.beejay.kim/Gshopper/sentio"
+	"github.com/samber/lo"
+)
+
+type portfolio_stub []position_stub
+
+func newStubPortfolio(elem ...position_stub) sentio.Portfolio {
+	var p portfolio_stub
+	p = append(p, elem...)
+
+	return p
+}
+
+func (p portfolio_stub) Get(symbol string) (sentio.Position, bool) {
+	return lo.Find(p, func(item position_stub) bool {
+		return item.symbol == symbol
+	})
+}
+
+func (p portfolio_stub) Positions() []sentio.Position {
+	return lo.Map(p, func(item position_stub, _ int) sentio.Position {
+		return item
+	})
+}
+
+type position_stub struct {
+	symbol string
+	size   float64
+	price  float64
+}
+
+func (p position_stub) GetSize() float64 {
+	return p.size
+}
+
+func (p position_stub) GetAvgPrice() float64 {
+	return p.price
+}
+
+func (p position_stub) GetSymbol() string {
+	return p.symbol
+}