69 if( input.node >= count )
70 throw std::invalid_argument(
"Connectivity partition node outside session keys" );
76 for(
NODE_ID edge : input.edges )
79 throw std::invalid_argument(
"Connectivity partition edge outside session keys" );
82 Unite( input.node, edge );
86 std::vector<PARTITION>
result;
88 for(
size_t i = 0; i < count; ++i )
100 result.push_back( { node, {}, 14695981039346656037ULL } );
109 PARTITION& partition = result[i];
111 for( const auto& [node, version] : partition.identity )
113 partition.hash = ( ( partition.hash ^ node ) * 1099511628211ULL ^ version ) * 1099511628211ULL;
115 if( aKeys.Less( aKeys.Node( node ), aKeys.Node( partition.anchor ) ) )
116 partition.anchor = node;
void ParallelFor(size_t aCount, FUNCTION &&aFunction, thread_pool &aPool=GetKiCadThreadPool())
Independent ordinal writes only; preparation and cache commits stay on the caller thread.
wxString result
Test unit parsing edge cases and error handling.