mirror of
https://github.com/NoFxAiOS/nofx.git
synced 2026-07-06 04:20:59 +08:00
49 lines
1.2 KiB
Go
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)
|
|
}
|
|
}
|