Vitalis_Devcore / tests /test_encoder.py
FerrellSyntheticIntelligence
feat: audio ear, cognition modules, dream engine, vitalis IDE, test encoder
63dd1f4
import numpy as np
from src.hdc_encoder.encoder import encode, DIM
class TestHDCEncoder:
def setup_method(self):
"""Initialize base parameters before each test to guarantee state isolation."""
self.prosody = {"pitch": 140.0, "energy": 0.25, "tempo": 115.0, "pause_ratio": 0.15}
self.frames = 40
self.mfcc = np.random.rand(13, self.frames).astype(np.float32)
def test_encoder_dimensionality(self):
"""Verify the output vector matches the strict dimensional parameters."""
hv = encode(self.mfcc, self.prosody)
assert hv.shape == (DIM,), f"Dimensionality failure: Expected {DIM}, got {hv.shape[0]}"
assert hv.dtype == np.uint8, f"Type architecture failure: Expected uint8, got {hv.dtype}"
def test_temporal_sequence_asymmetry(self):
"""
Verify that reversing the audio sequence produces a fundamentally different
hypervector. This proves the encoder captures the temporal direction of speech.
"""
mfcc_reversed = self.mfcc[:, ::-1]
hv_forward = encode(self.mfcc, self.prosody)
hv_reversed = encode(mfcc_reversed, self.prosody)
similarity = np.mean(hv_forward == hv_reversed)
# In an orthogonal 10k dimensional space, random vectors share ~50% similarity.
# We enforce a strict threshold to ensure the temporal shift breaks vector alignment.
assert similarity < 0.60, f"Commutativity failure: Temporal sequence not isolated. Similarity: {similarity}"
def test_prosody_modulation(self):
"""Verify that altering emotional/prosodic intent alters the final memory vector."""
angry_prosody = {"pitch": 240.0, "energy": 0.85, "tempo": 160.0, "pause_ratio": 0.05}
hv_base = encode(self.mfcc, self.prosody)
hv_angry = encode(self.mfcc, angry_prosody)
similarity = np.mean(hv_base == hv_angry)
assert similarity < 0.95, "Modulation failure: Prosody shifts did not impact the spatial vector."