autotrader/data_test.go
2023-05-12 19:36:03 -05:00

49 lines
1.3 KiB
Go

package autotrader
import "testing"
func TestReadDataCSV(t *testing.T) {
data, err := ReadDataCSV("./EUR_USD Historical Data.csv", DataCSVLayout{
LatestFirst: true,
DateFormat: "01/02/2006",
Date: "\ufeff\"Date\"",
Open: "Open",
High: "High",
Low: "Low",
Close: "Price",
Volume: "Vol.",
})
if err != nil {
t.Fatal(err)
}
if data.NRows() != 2610 {
t.Fatalf("Expected 2610 rows, got %d", data.NRows())
}
if len(data.Names()) != 6 {
t.Fatalf("Expected 6 columns, got %d", len(data.Names()))
}
if data.Series[0].Name() != "Date" {
t.Fatalf("Expected Date column, got %s", data.Series[0].Name())
}
if data.Series[1].Name() != "Open" {
t.Fatalf("Expected Open column, got %s", data.Series[1].Name())
}
if data.Series[2].Name() != "High" {
t.Fatalf("Expected High column, got %s", data.Series[2].Name())
}
if data.Series[3].Name() != "Low" {
t.Fatalf("Expected Low column, got %s", data.Series[3].Name())
}
if data.Series[4].Name() != "Close" {
t.Fatalf("Expected Close column, got %s", data.Series[4].Name())
}
if data.Series[5].Name() != "Volume" {
t.Fatalf("Expected Volume column, got %s", data.Series[5].Name())
}
if data.Series[0].Type() != "time" {
t.Fatalf("Expected Date column type time, got %s", data.Series[0].Type())
}
}