Files
mev-beta/pkg/uniswap/constants_test.go
2025-10-04 09:31:02 -05:00

38 lines
1.2 KiB
Go

package uniswap
import (
"math/big"
"testing"
"github.com/stretchr/testify/assert"
)
func TestUnifiedConstantsAccuracy(t *testing.T) {
// Initialize constants
InitConstants()
// Test that our global constants have the expected values
expectedQ96 := new(big.Int).Exp(big.NewInt(2), big.NewInt(96), nil)
expectedQ192 := new(big.Int).Exp(big.NewInt(2), big.NewInt(192), nil)
assert.Equal(t, expectedQ96, GetQ96(), "Q96 constant should be 2^96")
assert.Equal(t, expectedQ192, GetQ192(), "Q192 constant should be 2^192")
assert.Equal(t, GetLnBase(), 9.999500033329732e-05, "LnBase constant should be ln(1.0001)")
assert.Equal(t, GetInvLnBase(), 1.0/GetLnBase(), "InvLnBase constant should be 1/ln(1.0001)")
}
func TestUnifiedConstantsPerformance(t *testing.T) {
// Initialize constants first
InitConstants()
// Verify that calling InitConstants multiple times doesn't cause issues
// (the sync.Once should ensure initialization happens only once)
for i := 0; i < 10; i++ {
InitConstants()
}
// Ensure the values are still correct after multiple init calls
expectedQ96 := new(big.Int).Exp(big.NewInt(2), big.NewInt(96), nil)
assert.Equal(t, expectedQ96, GetQ96(), "Q96 constant should remain consistent after multiple init calls")
}