import unittest
from scientist_ai.knowledge_brain import KnowledgeBrain
from scientist_ai.hypothesis_brain import HypothesisBrain
from scientist_ai.critic_brain import CriticBrain
from scientist_ai.evolution_brain import EvolutionBrain

class TestScientistAI(unittest.TestCase):
    def test_knowledge_brain(self):
        kb = KnowledgeBrain()
        kb.add_concept('prime', {'definition': 'A number greater than 1 with no divisors except 1 and itself.'})
        self.assertIn('prime', kb.graph)

    def test_hypothesis_brain(self):
        hb = HypothesisBrain()
        self.assertIsInstance(hb.hypotheses, list)

    def test_critic_brain(self):
        cb = CriticBrain()
        self.assertTrue(hasattr(cb, 'attack'))

    def test_evolution_brain(self):
        eb = EvolutionBrain()
        self.assertTrue(hasattr(eb, 'evolve'))

if __name__ == '__main__':
    unittest.main()
