Files
nofx/trader/hyperliquid/trader_account_test.go
2026-06-28 11:36:56 +08:00

49 lines
1.2 KiB
Go

package hyperliquid
import "testing"
func TestUnifiedAccountDoesNotDoubleCountXYZAccountValue(t *testing.T) {
breakdown := calculateHyperliquidBalanceBreakdown(
true,
26.33, // Spot USDC collateral
0,
0,
0,
0,
25.96, // xyz account value is a view of the same shared collateral
-0.32,
25.96,
)
if breakdown.TotalEquity < 25.99 || breakdown.TotalEquity > 26.02 {
t.Fatalf("expected total equity to be spot + unrealized pnl, got %.4f", breakdown.TotalEquity)
}
if breakdown.TotalEquity > 40 {
t.Fatalf("unified collateral was double-counted: %.4f", breakdown.TotalEquity)
}
if breakdown.AvailableBalance > 0.1 {
t.Fatalf("expected almost no free collateral with full-size margin, got %.4f", breakdown.AvailableBalance)
}
}
func TestSeparateAccountsStillAddIndependentBalances(t *testing.T) {
breakdown := calculateHyperliquidBalanceBreakdown(
false,
30,
10,
1,
2,
8,
5,
-0.5,
1,
)
if breakdown.TotalEquity != 45 {
t.Fatalf("expected independent accounts to add to 45, got %.4f", breakdown.TotalEquity)
}
if breakdown.TotalWalletBalance != 44.5 {
t.Fatalf("expected wallet balance 44.5, got %.4f", breakdown.TotalWalletBalance)
}
}