mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 15:09:42 +00:00
* added audit manager * Basic database DOA setup * Added base config file * added sqlite support and creation of schema * added basic tests and config entry * corrected issues of database is disabled * fixed path for test * WIP * Added tests fixed config checking * reverted files back to upstream * reverted go.mod files * no more test test test * removed local testing details for psql * hello * added comments * increased ping to 30 seconds * renamed database table and added additional condition around test * removed database test details * goimport ran on all files * WIP * first attempt at migration * fixes for migration system * Migration system logger interface implemented * fixes to print functions * added write pooling pass * gofmt :D * formatted imports correctly * removed old code * added creation of migration * gofmt * :D Hello * ❌ 🏎️ * maybe one day i will remember to revert go mod files * checked err return condition correctly * first changes for PR feedback * code clean up * protect Connected with RWmutex & event with mutex * : D * we can just pretend like it never happened * MOved migrations back to source directory and added README * readme formatting update * Addd command line override for datadir * use correct var when creating a migration and confirm folder is created * Check if database version is newer than latest migration and also you know make migrations work..... * uses filepath instead of manual path to use correct path seperator * Add connection message and lower timeout * Added support for sslmode for psql * no longer force Close of database instead allow driver to maage * Added closer func to test output * sslmode added to example config
177 lines
4.1 KiB
Go
177 lines
4.1 KiB
Go
package currency
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestNewConversionFromString(t *testing.T) {
|
|
expected := "AUDUSD"
|
|
conv, err := NewConversionFromString(expected)
|
|
if err != nil {
|
|
t.Error("Test Failed - NewConversionFromString() error", err)
|
|
}
|
|
if conv.String() != expected {
|
|
t.Errorf("Test Failed - NewConversion() error expected %s but received %s",
|
|
expected,
|
|
conv)
|
|
}
|
|
|
|
newexpected := strings.ToLower(expected)
|
|
conv, err = NewConversionFromString(newexpected)
|
|
if err != nil {
|
|
t.Error("Test Failed - NewConversionFromString() error", err)
|
|
}
|
|
if conv.String() != newexpected {
|
|
t.Errorf("Test Failed - NewConversion() error expected %s but received %s",
|
|
newexpected,
|
|
conv)
|
|
}
|
|
}
|
|
|
|
func TestNewConversionFromStrings(t *testing.T) {
|
|
from := "AUD"
|
|
to := "USD"
|
|
expected := "AUDUSD"
|
|
|
|
conv, err := NewConversionFromStrings(from, to)
|
|
if err != nil {
|
|
t.Error("Test Failed - NewConversionFromString() error", err)
|
|
}
|
|
|
|
if conv.String() != expected {
|
|
t.Errorf("Test Failed - NewConversion() error expected %s but received %s",
|
|
expected,
|
|
conv)
|
|
}
|
|
}
|
|
|
|
func TestNewConversion(t *testing.T) {
|
|
from := NewCode("AUD")
|
|
to := NewCode("USD")
|
|
expected := "AUDUSD"
|
|
|
|
conv, err := NewConversion(from, to)
|
|
if err != nil {
|
|
t.Error("Test Failed - NewConversionFromCode() error", err)
|
|
}
|
|
|
|
if conv.String() != expected {
|
|
t.Errorf("Test Failed - NewConversion() error expected %s but received %s",
|
|
expected,
|
|
conv)
|
|
}
|
|
}
|
|
|
|
func TestConversionIsInvalid(t *testing.T) {
|
|
from := AUD
|
|
to := USD
|
|
|
|
conv, err := NewConversion(from, to)
|
|
if err != nil {
|
|
t.Fatal("Test Failed - NewConversion() error", err)
|
|
}
|
|
|
|
if conv.IsInvalid() {
|
|
t.Errorf("Test Failed - IsInvalid() error expected false but received %v",
|
|
conv.IsInvalid())
|
|
}
|
|
|
|
to = AUD
|
|
conv, err = NewConversion(from, to)
|
|
if err == nil {
|
|
t.Fatal("Test Failed - NewConversion() error", err)
|
|
}
|
|
}
|
|
|
|
func TestConversionIsFiatPair(t *testing.T) {
|
|
from := AUD
|
|
to := USD
|
|
|
|
conv, err := NewConversion(from, to)
|
|
if err != nil {
|
|
t.Fatal("Test Failed - NewConversion() error", err)
|
|
}
|
|
|
|
if !conv.IsFiat() {
|
|
t.Errorf("Test Failed - IsFiatPair() error expected true but received %v",
|
|
conv.IsFiat())
|
|
}
|
|
|
|
to = LTC
|
|
conv, err = NewConversion(from, to)
|
|
if err == nil {
|
|
t.Fatal("Test Failed - NewConversion() error", err)
|
|
}
|
|
}
|
|
|
|
func TestConversionsRatesSystem(t *testing.T) {
|
|
var SuperDuperConversionSystem ConversionRates
|
|
|
|
if SuperDuperConversionSystem.HasData() {
|
|
t.Fatalf("Test Failed - HasData() error expected false but received %v",
|
|
SuperDuperConversionSystem.HasData())
|
|
}
|
|
|
|
testmap := map[string]float64{
|
|
"USDAUD": 1.3969317581,
|
|
"USDBRL": 3.7047257979,
|
|
"USDCAD": 1.3186386881,
|
|
"USDCHF": 1,
|
|
"USDCNY": 6.7222712044,
|
|
"USDCZK": 22.6406277552,
|
|
"USDDKK": 6.5785575736,
|
|
"USDEUR": 0.8816787163,
|
|
"USDGBP": 0.7665755599,
|
|
"USDHKD": 7.8492329395,
|
|
"USDILS": 3.6152354082,
|
|
"USDINR": 71.154558279,
|
|
"USDJPY": 110.7476635514,
|
|
"USDKRW": 1122.7913948157,
|
|
"USDMXN": 19.1589666725,
|
|
"USDNOK": 8.5818197849,
|
|
"USDNZD": 1.4559160642,
|
|
"USDPLN": 3.8304531829,
|
|
"USDRUB": 65.7533062952,
|
|
"USDSEK": 9.3196085346,
|
|
"USDSGD": 1.3512608006,
|
|
"USDTHB": 31.0950449656,
|
|
"USDZAR": 14.138070887,
|
|
}
|
|
|
|
err := SuperDuperConversionSystem.Update(testmap)
|
|
if err != nil {
|
|
t.Fatal("Test Failed - Update() error", err)
|
|
}
|
|
|
|
err = SuperDuperConversionSystem.Update(nil)
|
|
if err == nil {
|
|
t.Fatal("Test Failed - Update() error cannot be nil")
|
|
}
|
|
|
|
if !SuperDuperConversionSystem.HasData() {
|
|
t.Fatalf("Test Failed - HasData() error expected true but received %v",
|
|
SuperDuperConversionSystem.HasData())
|
|
}
|
|
|
|
// * to a rate
|
|
p := SuperDuperConversionSystem.m[USD.Item][AUD.Item]
|
|
// inverse * to a rate
|
|
pi := SuperDuperConversionSystem.m[AUD.Item][USD.Item]
|
|
r := *p * 1000
|
|
expectedRate := 1396.9317581
|
|
if r != expectedRate {
|
|
t.Errorf("Test Failed - Convert() error expected %.13f but received %.13f",
|
|
expectedRate,
|
|
r)
|
|
}
|
|
|
|
inverseR := *pi * expectedRate
|
|
expectedInverseRate := float64(1000)
|
|
if inverseR != expectedInverseRate {
|
|
t.Errorf("Test Failed - Convert() error expected %.13f but received %.13f",
|
|
expectedInverseRate,
|
|
inverseR)
|
|
}
|
|
}
|