Back to catalog

pSearchGrid

H01 pSearchGrid Unit

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

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.

Examples

Representative runs

Grid Delta

Description: 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.

Full Grid Report

Description: 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.

Case Matrix

All cases

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.

Source links

Harness README Mission README