Source code for mercurial.tests.foundations.test_pattern

"""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}")