"""Quick test for pattern functionality."""
import numpy as np
from mercurial.core.patterns import Constraints, Pattern, StabilityRegime
# Create a simple pattern
pattern = Pattern.simple_gaussian(dimension=3, label="test")
print(f"Information content: {pattern.information_content():.4f} bits")
print(f"Coherence: {pattern.coherence():.4f}")
print(f"Free energy: {pattern.free_energy():.4f}")
print(f"Persistence probability (Δt=1s): {pattern.persistence_probability(1.0):.4f}")
# Create a pattern with constraints
[docs]
def circle_constraint(v):
return v[0] ** 2 + v[1] ** 2 - 1.0 # equality constraint: x²+y²=1
cons = Constraints(equality=[circle_constraint])
V = np.random.randn(200, 3)
stability = StabilityRegime(decay_rate=0.01)
pattern2 = Pattern(V, cons, stability, "circle")
print(f"\nConstrained pattern violation: {pattern2.C.violation_norm(V[0]):.4f}")