[HETERO] test cases for graph split (#35265)
Refactor SubgraphCollector unit tests for readability and coverage
1. Parameterized SubgraphCollector-direct tests
- Unified 3 existing TEST_F tests (split_and_merge × 2,
merge_independent) and 6 new affinity scenarios into a single
TEST_P(SubgraphCollectorParamTest, split_by_affinity) with 9 data-driven
cases.
- Introduced SubgraphCollectorTestParam struct with documented optional
fields (IDs, submodel factories, mapping, merge roundtrip).
2. New test scenarios (via parameterization):
- split_cyclic_dependency_nested — nested cyclic dependencies → 5
subgraphs
- all_same_affinity — single device → 1 subgraph
- all_different_affinities — each op on different device → 4 subgraphs
- result_inherits_input_affinity — Result node follows predecessor
- alternating_devices — A/B/A/B pattern → 4 subgraphs
- independent_paths_same_affinity — disconnected components → 2
subgraphs
- diverging_paths_no_split — shared ancestor keeps single subgraph
- stateful_assign_readvalue_single_device: single device → 1 subgraph
4. Renamed for clarity:
- create_test_model → create_linear_chain_model
- create_test_model2 → create_diamond_chain_model
- submodel_replacement_first_device → mask_ops_single_device
- submodel_replacement_both_devices → mask_ops_all_devices
- submodel_with_different_affinity_parameter →
mask_ops_mixed_affinity_no_throw
- submodel_with_constant_subgraphs →
constant_subgraphs_follow_consumer_affinity
5. Improved readability:
- Added topology comments to all model/subgraph factory functions.
- Unified affinity device names to MOCK.x across all tests.
- Added compare_functions verification in merge roundtrip tests.
Tickets: CVS-184739
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Chen Peter <peter.chen@intel.com>