import sys,unittest,threading from pathlib import Path sys.path.insert(0,str(Path(__file__).resolve().parents[1]/'engine')) import generation,geometry class Generation(unittest.TestCase): def test_preserves_controls_and_complete_prefix(self): g=geometry.new();seen=[] def gen(adjusted,attempt): seen.append(adjusted['controls'].copy()) return {'text':'The machine feared the void. '+('The cold blood '*12)} r=generation.rewrite('The machine predicts sensory information.',gen,g,True,threading.Event(),lambda s:None) self.assertEqual(seen,[g['controls']]);self.assertEqual(r['text'],'The machine feared the void.') self.assertEqual(len(r['attempts']),1);self.assertIn('cold blood',r['attempts'][0]['text']) def test_shared_allowance_is_used(self): r=generation.rewrite('Short.',lambda *a:{'text':'A much longer complete sentence.'},geometry.new(),True,threading.Event(),lambda s:None,max_chars=100) self.assertEqual(r['text'],'A much longer complete sentence.');self.assertNotIn('original_retained',r) def test_no_complete_sentence_is_flagged(self): r=generation.rewrite('Original.',lambda *a:{'text':'cut off'},geometry.new(),True,threading.Event(),lambda s:None) self.assertTrue(r['original_retained']);self.assertEqual(len(r['attempts']),1) def test_repetition_detection(self): self.assertTrue(generation.repetition('cold blood of the machine '*8)) self.assertFalse(generation.repetition('The machine watches the rain. It hopes for quiet.')) def test_concise_paragraph_allowance(self): import documents text='A'*600+' '+'B'*150 spans=[(0,600),(601,751)] first=documents.rewrite_allowance(text,spans,{},0,multiplier=1.25) self.assertEqual(first,750) records={'0':{'text':'X'*650}} last=documents.rewrite_allowance(text,spans,records,1,multiplier=1.25) records['1']={'text':'Y'*last} self.assertLessEqual(len(documents.assemble(text,spans,records)),int(1.25*len(text)))