Neural-Lab / tests /test_readiness.py
KrazyKitty's picture
Convert NEURAL LAB to verified Gradio research dashboard
69458c4 verified
Raw History Blame Contribute Delete
1.99 kB
from __future__ import annotations
import sys
import unittest
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
sys.path.insert(0, str(ROOT))
from readiness import TRACK_REQUIREMENTS, assess_readiness, render_assessment, requirement_choices # noqa: E402
from research_library import COLLECTIONS, collection_choices, render_collection # noqa: E402
class ReadinessTests(unittest.TestCase):
def test_each_track_has_six_unique_requirements(self) -> None:
for requirements in TRACK_REQUIREMENTS.values():
self.assertEqual(len(requirements), 6)
self.assertEqual(len(set(requirements)), 6)
def test_empty_checklist_is_incomplete(self) -> None:
result = assess_readiness("Dataset release", [])
self.assertFalse(result["ready"])
self.assertEqual(result["score"], 0)
self.assertEqual(len(result["missing"]), 6)
def test_complete_checklist_requires_review(self) -> None:
track = "Agent system experiment"
result = assess_readiness(track, requirement_choices(track))
self.assertTrue(result["ready"])
self.assertEqual(result["score"], 100)
self.assertIn("Independent review is still required", render_assessment(track, requirement_choices(track)))
def test_unknown_values_are_rejected(self) -> None:
with self.assertRaises(ValueError):
assess_readiness("Language model experiment", ["Invented gate"])
class CollectionTests(unittest.TestCase):
def test_all_four_public_collections_are_modelled(self) -> None:
self.assertEqual(len(COLLECTIONS), 4)
self.assertEqual(collection_choices()[0], "Transformer Foundations")
def test_collection_rendering_escapes_and_links(self) -> None:
rendered = render_collection("Agent Systems")
self.assertIn("VERIFIED PUBLIC COLLECTION", rendered)
self.assertIn(COLLECTIONS["Agent Systems"].url, rendered)
if __name__ == "__main__":
unittest.main()