26 lines
904 B
Python
26 lines
904 B
Python
from data.generate_rules import add_rule
|
|
from data.generate_scenes import HELD_OUT_SHAPES, generate_scene
|
|
|
|
|
|
def test_scene_generation_is_deterministic():
|
|
first = generate_scene(7, seed=17)
|
|
second = generate_scene(7, seed=17)
|
|
assert first == second
|
|
assert len(first["visual_facts"]) == 5
|
|
|
|
|
|
def test_held_out_rule_changes_combination():
|
|
scene = generate_scene(3, seed=17)
|
|
train = add_rule(scene, seed=17, held_out=False)
|
|
held_out = add_rule(scene, seed=17, held_out=True)
|
|
assert train["combination"] != held_out["combination"]
|
|
assert train["answer"] == held_out["answer"]
|
|
assert len(train["text_facts"]) == 1
|
|
assert len(train["text_rules"]) == 1
|
|
|
|
|
|
def test_ood_scene_uses_held_out_visual_composition():
|
|
scene = generate_scene(5, seed=17, held_out_composition=True)
|
|
first = scene["objects"][0]
|
|
assert first["shape"] == HELD_OUT_SHAPES[first["color"]]
|