Stem Mission
Baseline scenario context
The stem mission runs one MOOS community with pSearchGrid and case-generated NODE_REPORT mail. The harness uses pMissionEval for readiness and alog payload checks for grid and delta publications.
pSearchGrid
Utility app correctness tests for pSearchGrid. These cases verify initial grid output, local/global node-report deltas, repeated and multi-cell delta behavior, reset clearing semantics, full-grid publication, custom grid variables, single and list filter blocking, malformed reports, and outside-grid absence.
Stem Mission
The stem mission runs one MOOS community with pSearchGrid and case-generated NODE_REPORT mail. The harness uses pMissionEval for readiness and alog payload checks for grid and delta publications.
Examples
Case Matrix
initial_grid_publish_pass
Configures a 20-by-20 grid with 10-meter cells, variable x:0, and label psg; passes when VIEW_GRID history contains the polygon, cell size, cell variable, and label tokens.
node_local_delta_pass
Posts NODE_REPORT_LOCAL at (5,5), testing local-report accumulation in cell 0; passes when VIEW_GRID_DELTA contains label prefix psg@ and an x,1 increment.
node_global_delta_pass
Posts global NODE_REPORT at (15,5), testing the global report subscription; passes when VIEW_GRID_DELTA contains psg@ and an x,1 increment.
boundary_origin_delta_pass
Posts a local report exactly at grid origin (0,0), testing inclusive boundary containment; passes when a psg@ delta with x,1 is published.
outside_grid_no_delta_pass
Posts a local report at (50,50), testing positive-side rejection outside the polygon; passes when no VIEW_GRID_DELTA is published before evaluation.
negative_outside_no_delta_pass
Posts a local report at (-1,-1), testing negative-side rejection just beyond the origin; passes when no VIEW_GRID_DELTA is published.
full_grid_report_pass
Sets report_deltas=false and posts at (5,5), testing full-grid updates instead of delta mail; passes when VIEW_GRID contains a cell record and exact cell=0:x:1.
custom_var_label_pass
Sets grid_var_name=SEARCH_GRID and grid_label=custom_psg, then posts at (5,5); passes when base mail uses SEARCH_GRID, delta mail uses SEARCH_GRID_DELTA with custom_psg@ and x,1, and VIEW_GRID_DELTA is absent.
lowercase_var_name_pass
Configures lowercase grid_var_name=search_grid and label lower_psg, testing output-variable normalization; passes when uppercase SEARCH_GRID/SEARCH_GRID_DELTA mail appears and VIEW_GRID_DELTA does not.
custom_full_grid_var_pass
Combines lowercase search_grid with report_deltas=false, testing custom naming in full-grid mode; passes when SEARCH_GRID contains cell=0:x:1 and no VIEW_GRID mail is published.
invalid_report_deltas_default_delta_pass
Configures invalid report_deltas=maybe, testing fallback to the default delta mode; passes when VIEW_GRID_DELTA contains psg@ and x,1.
reset_grid_clears_pass
In full-grid mode, increments cell 0 and posts PSG_RESET_GRID=true; passes when a pre-reset grid contains cell=0:x:1 and a post-reset grid contains the default cell_vars=x:0,label=psg without the nondefault cell-0 override.
reset_false_payload_clears_pass
Repeats the full-grid reset with PSG_RESET_GRID=false, proving reset is triggered by receipt rather than boolean value; passes on the same ordered cell=0:x:1 then cleared-default payload evidence.
two_cell_delta_pass
Posts simultaneous local reports at (5,5) and (15,5), which map to cell indexes 0 and 2; passes only when one delta contains the complete psg@0,x,1:2,x,1 update.
repeated_cell_delta_pass
Runs at AppTick 1 and posts two same-time reports at (5,5), testing same-cycle accumulation; passes when one delta contains x,2.
sequential_delta_cleared_pass
Posts to cell 0 at times 0.4 and 1.0, testing that published delta state is cleared between cycles; passes when at least two x,1 delta tokens appear and no x,2 token appears.
match_community_allows_pass
Sets match_name=shoreside and posts a shoreside local report; passes when an x,1 delta is published.
match_list_allows_pass
Sets match_name={vehicle,shoreside}, testing brace/comma list parsing; passes when the listed shoreside report produces an x,1 delta.
match_community_blocks_pass
Sets match_name=vehicle and posts from shoreside, testing nonmatching-community rejection; passes when no delta is published.
ignore_other_allows_pass
Sets ignore_name=vehicle and posts from shoreside, testing that an unrelated ignore value does not block mail; passes when an x,1 delta is published.
ignore_community_blocks_pass
Sets ignore_name=shoreside, testing direct community suppression; passes when no delta is published.
ignore_list_blocks_pass
Sets ignore_name={vehicle,shoreside}, testing list-form suppression; passes when no delta is published for shoreside mail.
malformed_report_absent_pass
Posts local NAME=bad,X=5 without Y or remaining node-report fields, testing malformed-report rejection; passes when no delta is published.