baseline_crossing_pass
Posts a stationary intruder at (39,-60) two seconds after deploy under the static 20-meter range and 28-meter CPA alert, testing the normal CONTACT_INFO spawn path; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.
offset_clear_pass
Moves the stationary contact to (45,-42), 18 meters north of the route, testing the clear trajectory outcome for off-lane geometry; passes when ARRIVED=true, ENCOUNTER_TOTAL=0, and COLLISION_TOTAL=0.
no_detect_clear_pass
Moves the contact to (45,-34) and reduces the alert thresholds to 10 and 12 meters, testing that a tracked contact outside both thresholds does not generate the avoid alert; passes when CONTACT_CLOSEST=intruder, CONTACT_CLOSEST_RANGE>10, ARRIVED=true, ENCOUNTER_TOTAL=0, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.
delayed_crossing_pass
Posts a stationary on-lane contact at (51,-60) after 12 seconds and evaluates at 52 seconds, testing late alert and avoidance during transit; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.
head_on_pass
Posts intruder at (71,-60) moving west at 1.4, testing alert-driven avoidance against an oncoming contact; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.
runtime_alert_add_pass
Starts without a static alert, adds the avoid alert by BCM_ALERT_REQUEST at one second, and posts the on-lane contact at two seconds, testing runtime alert creation; passes when ARRIVED=true, CONTACT_DETECTED=true, and COLLISION_TOTAL=0.
runtime_alert_reenable_pass
Disables the static alert before posting the short-lived early contact, waits for that contact to retire, then enables the alert and posts on-lane late; passes when early retires without publishing CMGR_ALERTED_early, CMGR_ALERTED_late=true, ARRIVED=true, and COLLISION_TOTAL=0.
filter_match_type_clear_pass
Requires match_type=ship while posting the default kayak contact at (45,-42), testing that type filtering blocks the alert without dropping the contact; passes when CONTACT_CLOSEST=intruder, ARRIVED=true, ENCOUNTER_TOTAL=0, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.
stale_reappear_pass
Sets contact_max_age=5, posts a three-second intruder at one second, clears the old detection latch at 10 seconds, then posts the same name on the route at 12 seconds, testing retirement and fresh alerting after reappearance; passes when CONTACT_RETIRED=intruder, the reset CONTACT_DETECTED returns to true, ARRIVED=true, and COLLISION_TOTAL=0.
two_contact_pass
Posts avoid-worthy alpha at (39,-56) and background bravo at (53,-34), testing that both are tracked while only alpha generates the avoid alert; passes when CONTACTS_LIST=alpha,bravo, CONTACT_ALERTED=alpha, ARRIVED=true, ENCOUNTER_TOTAL=0, and COLLISION_TOTAL=0.
tight_alert_fail
Reduces the baseline alert thresholds to 8 and 10 meters, testing that the tracked intruder never enters the tighter alert region; passes when CONTACT_CLOSEST=intruder, ARRIVED=true, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.
avoid_disabled_fail
Sends the alert update to DISABLED_INFO instead of the behavior's CONTACT_INFO variable and posts an oncoming contact at (67,-60) moving west at 1.8, testing detection without behavior spawn; passes when ARRIVED=true, CONTACT_DETECTED=true, ENCOUNTER_TOTAL=1, and COLLISION_TOTAL=0.
runtime_alert_disable_fail
Disables the static alert at one second before posting the same oncoming contact at two seconds, testing runtime alert suppression without dropping contact tracking; passes when CONTACT_CLOSEST=intruder, ARRIVED=true, ENCOUNTER_TOTAL=1, COLLISION_TOTAL=0, and CONTACT_DETECTED remains false.
fast_intruder_fail
Posts an oncoming contact at (57,-60) moving west at 3.0, testing detection under a faster encounter geometry; passes when ARRIVED=true, CONTACT_DETECTED=true, ENCOUNTER_TOTAL>=1, and COLLISION_TOTAL=0.