"""Execute route result policy and audit opt-in finite/native fixture boundaries.""" from policy_harness import ROOT, body, run P=ROOT/'addons/ai/Scripts/Game/ERR/ERR_NativeAircraftRouteProbe.c' source=P.read_text() rules='\n'.join(body(P,k) for k in ('static bool Terminal(', 'static bool TranslateProof(', 'static bool PhysicalFinish(', 'static bool CanDispose(')).replace('ERR_AircraftFlightState.','State::') run('''#include namespace State {enum {COMPLETE=8,CANCELLED,FAILED,RELINQUISHED};} '''+rules+''' int main(){ assert(Terminal(false,State::COMPLETE,0));assert(!Terminal(false,State::CANCELLED,0));assert(!Terminal(false,State::FAILED,0)); assert(TranslateProof(true,true,20,19.5,.5)); assert(!TranslateProof(true,true,20,1,.5));assert(!TranslateProof(true,false,20,20,0));assert(!TranslateProof(false,true,20,20,0));assert(!TranslateProof(true,true,20,20,.76f)); assert(!TranslateProof(true,true,29,29,0));assert(!TranslateProof(true,true,9,9,0)); assert(PhysicalFinish(true,true,true,.1f,1,1,1,101,101)); assert(!PhysicalFinish(true,true,false,.1f,1,1,1,101,101));assert(!PhysicalFinish(true,true,true,0,1,1,1,101,101));assert(!PhysicalFinish(true,true,true,.1f,2,1,1,101,101));assert(!PhysicalFinish(false,true,true,.1f,1,1,1,101,101)); assert(CanDispose(true,true,true,true,true));for(int i=0;i<5;i++)assert(!CanDispose(i!=0,i!=1,i!=2,i!=3,i!=4)); } ''') assert source.startswith('#ifdef WORKBENCH') and source.rstrip().endswith('#endif') assert 'outcome == "aircraft-route"' in body(P,'static bool Enabled(') assert 'outcome == "aircraft-control"' not in source assert source.count('ERR_Actors.Spawn(AIRCRAFT,')==1 and source.count('SpawnCharacterInCompartment(')==1 assert source.count('physics.SetActive(ActiveState.ACTIVE)')==1 for prohibited in ('SetWorldTransform(', 'SetOrigin(', 'SetVelocity(', '.StartEngine(', '.StopEngine(', 'm_Mode.Own('):assert prohibited not in source assert 'ERR_AircraftRouteEnvelope.Survey(candidate, destination)' in body(P,'protected bool FindPad(') tick=body(P,'int Tick(') assert 'ERR_AircraftRouteEnvelope.QualifyRoute(' in tick and 'm_Flight.StartRoute(' in tick assert tick.index('ERR_AircraftRouteEnvelope.QualifyRoute(') #include namespace ERR_Phase {enum {DEFEAT};} struct Probe {int result=0,ticks=0;int Tick(float){ticks++;return result;}}; struct Fixture {int m_ERRSmokeStep=230,failures=0,transitions=0;Probe m_ERRAircraftRoute; void ERR_Check(bool,const char*){failures++;} void Transition(int phase){assert(phase==ERR_Phase::DEFEAT&&m_ERRSmokeStep==231);transitions++;} void Tick(float now){ '''+branch.replace('ERR_Phase.','ERR_Phase::')+''' } }; int main(){ for(int result:{-1,0,1}){Fixture f;f.m_ERRAircraftRoute.result=result;f.Tick(1000);assert(f.m_ERRAircraftRoute.ticks==1);assert(f.failures==(result<0));assert(f.transitions==(result==1));assert(f.m_ERRSmokeStep==(result==1?231:230));} } ''') terminal=block(body(chat,'protected void ERR_SmokePhase('),'if (m_ERRTestAircraftRoute)') assert 'current == ERR_Phase.DEFEAT && m_ERRSmokeStep == 231' in terminal assert terminal.index('ERR_StopHQPatrol();')