package observability import ( "testing" ) func TestNewMetrics(t *testing.T) { metrics := NewMetrics("test") if metrics == nil { t.Fatal("NewMetrics returned nil") } } func TestMetrics_RecordSwapEvent(t *testing.T) { metrics := NewMetrics("test") // Should not panic metrics.RecordSwapEvent("uniswap-v2", true) metrics.RecordSwapEvent("uniswap-v3", false) } func TestMetrics_RecordParseLatency(t *testing.T) { metrics := NewMetrics("test") // Should not panic metrics.RecordParseLatency("uniswap-v2", 0.005) metrics.RecordParseLatency("uniswap-v3", 0.003) } func TestMetrics_RecordArbitrageOpportunity(t *testing.T) { metrics := NewMetrics("test") // Should not panic metrics.RecordArbitrageOpportunity(0.1) metrics.RecordArbitrageOpportunity(0.5) } func TestMetrics_RecordExecution(t *testing.T) { metrics := NewMetrics("test") // Should not panic metrics.RecordExecution(true, 0.05) metrics.RecordExecution(false, -0.01) } func TestMetrics_PoolCacheSize(t *testing.T) { metrics := NewMetrics("test") // Should not panic metrics.IncrementPoolCacheSize() metrics.IncrementPoolCacheSize() metrics.DecrementPoolCacheSize() } func TestMetrics_AllMethods(t *testing.T) { metrics := NewMetrics("test") // Test all methods in sequence metrics.RecordSwapEvent("uniswap-v2", true) metrics.RecordParseLatency("uniswap-v2", 0.004) metrics.RecordArbitrageOpportunity(0.08) metrics.RecordExecution(true, 0.05) metrics.IncrementPoolCacheSize() metrics.DecrementPoolCacheSize() }