43ntropy
/

NEvo / tests /test_output_schema.py
43ntropy's picture
Duplicate from epfl-neuroai/NEvo
1e2bb2f
Raw
History Blame Contribute Delete
1.01 kB
import torch
from stimulus_synthesis.outputs import StimulusCandidate, StimulusSynthesisOutput
from stimulus_synthesis.scoring.objectives import indices_mean, vector_cosine, vector_dot
def test_objectives():
predictions = torch.tensor([[1.0, 2.0, 3.0], [3.0, 2.0, 1.0]])
assert torch.allclose(indices_mean(predictions, {"type": "indices", "indices": [0, 2]}), torch.tensor([2.0, 2.0]))
assert torch.allclose(vector_dot(predictions, {"type": "vector", "vector": [1.0, 0.0, 0.0]}), torch.tensor([1.0, 3.0]))
assert vector_cosine(predictions, {"type": "vector", "vector": [1.0, 0.0, 0.0]}).shape == (2,)
def test_output_schema():
candidate = StimulusCandidate(prompt="person running", score=1.5, image="image", video="video")
output = StimulusSynthesisOutput(
candidates=[candidate],
best_prompt=candidate.prompt,
best_score=candidate.score,
history_best=[1.5],
)
assert output.best.prompt == "person running"
assert output.best_score == 1.5