Files
logic-skeleton-bench/tests/test_skeletons.py
T

38 lines
1.4 KiB
Python

import unittest
from logicbench.skeletons import generate_skeletons, resolve_length
class SkeletonTests(unittest.TestCase):
def test_short_means_two_proof_bearing_operations(self):
skeletons = generate_skeletons(count=3, length="short", seed=42)
self.assertEqual([item.complexity for item in skeletons], [2, 2, 2])
self.assertEqual([item.family for item in skeletons], [
"transitive_order",
"membership_inheritance",
"sequential_state_update",
])
self.assertTrue(all(len(item.proof) == 2 for item in skeletons))
def test_generation_is_deterministic(self):
first = [item.to_dict() for item in generate_skeletons(6, 4, seed=7)]
second = [item.to_dict() for item in generate_skeletons(6, 4, seed=7)]
self.assertEqual(first, second)
def test_renderer_never_receives_gold_or_proof(self):
skeleton = generate_skeletons(1, "short", seed=1)[0]
payload = skeleton.renderer_payload()
self.assertNotIn("gold_answer", payload)
self.assertNotIn("proof", payload)
self.assertIn("answer_options", payload)
def test_length_validation(self):
self.assertEqual(resolve_length("medium"), 4)
self.assertEqual(resolve_length("5"), 5)
with self.assertRaises(ValueError):
resolve_length("huge")
if __name__ == "__main__":
unittest.main()