tensegrity / tests /test_architecture_alignment.py
theapemachine's picture
Enhance README and scripts for cognitive architecture testing
be04d92
import numpy as np
import networkx as nx
class FakeTokenizer:
def __init__(self):
self._vocab = {
"dependency": 0,
"crash": 1,
"library": 2,
"folded": 3,
"pressure": 4,
"cat": 5,
}
self.vocab_size = len(self._vocab)
def get_vocab(self):
return dict(self._vocab)
def encode(self, text, add_special_tokens=False):
return [self._vocab[t] for t in text.strip().split() if t in self._vocab]
def test_semantic_projection_grounding_captures_nonliteral_tokens():
from tensegrity.graft.vocabulary import VocabularyGrounding
vectors = {
"dependency crash": np.array([1.0, 0.0]),
"dependency": np.array([0.98, 0.02]),
"crash": np.array([0.95, 0.05]),
"library": np.array([0.92, 0.08]),
"folded": np.array([0.88, 0.12]),
"pressure": np.array([0.84, 0.16]),
"cat": np.array([0.0, 1.0]),
}
def embed(text):
return vectors.get(text, np.array([0.0, 1.0]))
grounding = VocabularyGrounding.from_semantic_projection(
{"dependency_crash": ["dependency crash"]},
FakeTokenizer(),
embedding_fn=embed,
top_k=5,
threshold=0.7,
)
token_ids = grounding.get_token_ids("dependency_crash")
token_scores = grounding.get_token_scores("dependency_crash")
assert 2 in token_ids # "library"
assert 3 in token_ids # "folded"
assert token_scores[2] > 0.7
assert 5 not in token_ids # unrelated "cat"
def test_topology_mapper_turns_horizontal_edge_into_virtual_parent():
from tensegrity.engine.causal_energy import TopologyMapper
dag = nx.DiGraph()
dag.add_edge("A", "B")
mapping = TopologyMapper().project_graph(
dag,
variable_layers={"A": 0, "B": 0},
)
assert len(mapping.virtual_parents) == 1
vp = next(iter(mapping.virtual_parents.values()))
assert set(vp.children) == {"A", "B"}
assert mapping.embedded_layers[vp.name] == 1
assert (vp.name, "A") in mapping.embedded_edges
assert (vp.name, "B") in mapping.embedded_edges
assert ("A", "B") not in mapping.embedded_edges
def test_topology_mapper_inserts_relay_nodes_for_bypass_edge():
from tensegrity.engine.causal_energy import TopologyMapper
dag = nx.DiGraph()
dag.add_edge("root", "leaf")
mapping = TopologyMapper().project_graph(
dag,
variable_layers={"root": 3, "leaf": 0},
)
relay_layers = sorted(mapping.embedded_layers[n] for n in mapping.relay_nodes)
assert relay_layers == [1, 2]
assert mapping.ngc_layer_sizes() == [1, 1, 1, 1]
def test_topology_mapper_keeps_virtual_parent_edges_adjacent():
from tensegrity.engine.causal_energy import TopologyMapper
dag = nx.DiGraph()
dag.add_edge("low", "high")
mapping = TopologyMapper().project_graph(
dag,
variable_layers={"low": 0, "high": 2},
)
assert len(mapping.virtual_parents) == 1
for parent, child in mapping.embedded_edges:
assert mapping.embedded_layers[parent] == mapping.embedded_layers[child] + 1