from policy_harness import ROOT, body, run import re path = ROOT/'addons/core/Scripts/Game/ERR/00_Core/ERR_CasualtyLoadingService.c' source = '\n'.join(body(path, signature) for signature in [ 'static int RoundAction(', 'static bool ObserveTicket(', 'static bool Within(', 'static bool SettledFor(', 'static bool Ranges(', 'static bool AircraftMotion(']) # Enforce float literals are single precision; C++ otherwise promotes these to doubles. source = re.sub(r'(?\n' + source + ''' int main() { assert(RoundAction(0)==0); // pre-start roster callbacks must not latch Stop for (int phase=1;phase<=4;phase++) assert(RoundAction(phase)==1); assert(RoundAction(5)==2); assert(RoundAction(6)==2); for (int flags=0;flags<8;flags++) { bool committed=flags&1, physical=flags&2, authorized=flags&4; bool keep=physical && (committed || authorized); assert(ObserveTicket(committed,physical,authorized)==keep); } assert(ObserveTicket(true,true,false)); // disconnect after irreversible commit retains seat assert(!ObserveTicket(false,true,false)); // before commit it cancels // A late/reordered/expired lease cannot authorize a native entry. assert(Within(1000,1000,3000)); assert(Within(1000,3999,3000)); assert(!Within(1000,4000,3000)); assert(!Within(1000,999,3000)); assert(!Within(2147483000,-2147483000,3000)); // A continuous observation window needs both sufficient settling and fresh data. assert(!SettledFor(-1,5000,5000)); assert(!SettledFor(1000,5999,5999)); assert(SettledFor(1000,6000,6000)); assert(SettledFor(1000,6000,7999)); assert(!SettledFor(1000,6000,8000)); assert(!SettledFor(1000,6000,5999)); assert(!SettledFor(6000,6000,6000)); // recovered/moving body starts a new window // Every participant must independently be inside the physical rescue range. assert(Ranges(3,12,12)); assert(!Ranges(3.01,12,12)); assert(!Ranges(3,12.01,12)); assert(!Ranges(3,12,12.01)); assert(!Ranges(-1,0,0)); assert(!Ranges(0,-1,0)); assert(!Ranges(0,0,-1)); // Contact alone cannot authorize an airborne, inverted, sliding or turning craft. assert(AircraftMotion(true,1,0,0)); assert(AircraftMotion(true,0.85,0.5,0.1)); assert(!AircraftMotion(false,1,0,0)); assert(!AircraftMotion(true,-1,0,0)); assert(!AircraftMotion(true,0.849,0,0)); assert(!AircraftMotion(true,1,0.501,0)); assert(!AircraftMotion(true,1,0,0.101)); } ''') print('PASS: rescue lease expiry/reordering, fresh five-second settling, independent rescue ranges and grounded upright aircraft motion boundaries')