pub fn choose_strategy(workload: &Workload) -> ParallelStrategyExpand description
Choose optimal parallel processing strategy
Decision algorithm:
- Sequential: total_tests < 20 OR num_categories <= 1
- CategoryLevel: total_tests < 100 OR num_cpus < 4
- TestLevel: total_tests >= 100 AND num_cpus >= 4
ยงExamples
use cli_testing_specialist::utils::parallel::{choose_strategy, Workload, ParallelStrategy};
use cli_testing_specialist::types::TestCategory;
let categories = vec![TestCategory::Basic, TestCategory::Security];
let workload = Workload::new(&categories, 10, 5);
let strategy = choose_strategy(&workload);
// Small workload -> Sequential or CategoryLevel
assert!(matches!(strategy, ParallelStrategy::Sequential | ParallelStrategy::CategoryLevel));