test_controller

class test_controller.DeferredDataWriter(queue)[source]

Bases: DataWriter

Hold retained data in the queue until the controller starts shutdown.

run()[source]

Drain and consolidate the backlog after all producers finish.

class test_controller.ExitingDataWriter(q)[source]

Bases: DataWriter

Exit abruptly after receiving the first retained result.

run()[source]

Simulate a writer process dying while producers are active.

class test_controller.FailedConsolidationWriter(q)[source]

Bases: DataWriter

Fail after accepting all retained results and the end marker.

run()[source]

Simulate an output error during final consolidation.

test_controller.test_apply_modification_updates_nested_attributes()[source]

Verify Monte Carlo path strings update the nested object.

test_controller.test_controller_drains_retained_data_before_return(tmp_path, monkeypatch, workers)[source]

Verify a delayed writer saves every run before the controller returns.

test_controller.test_disperse_seeds_only_records_seeded_models()[source]

Verify random seed dispersions are recorded only for seeded models.

test_controller.test_dispersion_base_classes_are_abstract(dispersion_class)[source]

Verify Python enforces the Monte Carlo dispersion interfaces.

test_controller.test_double_indexed_modification_updates_swig_matrix3d()[source]

Verify double-indexed paths write back SWIG Matrix3d attributes.

test_controller.test_empty_campaign_and_legacy_controller_settings(tmp_path)[source]

Handle empty campaigns and controller archives predating the new settings.

test_controller.test_indexed_modification_updates_swig_copy_on_read_container()[source]

Verify indexed paths write back copy-on-read SWIG containers.

test_controller.test_initial_conditions_accept_numpy_indices(tmp_path, cases)[source]

Execute NumPy case arrays, including case zero and an empty selection.

test_controller.test_initial_conditions_with_and_without_writer(tmp_path, workers, archive)[source]

Run saved cases with a bounded writer or only their individual archives.

test_controller.test_interrupt_with_full_retention_queue_cleans_up(tmp_path, monkeypatch, workers)[source]

Verify interrupt cleanup with a full retention queue and paused writer.

test_controller.test_normal_vector_angle_dispersion_uses_scalar_angle_samples(monkeypatch)[source]

Verify normal angle dispersions draw scalar angle samples.

test_controller.test_normal_vector_dispersion_uses_configured_statistics()[source]

Verify normal vector dispersions retain mean and standard deviation.

test_controller.test_pool_reuse_recycling_and_repeated_execution(tmp_path)[source]

Reuse workers, bound their lifetimes, and finish a partial final batch.

test_controller.test_populate_seeds_applies_before_configure_function()[source]

Verify archived RNGSeed modifications are set before configuration.

test_controller.test_task_failures_report_indices_and_preserve_successes(tmp_path, monkeypatch, initial_conditions, failure_stage)[source]

Report preparation and submission errors while retaining later runs.

test_controller.test_uniform_dispersion_randomizes_method_path_parameter()[source]

Verify generated dispersions update a zero-argument method path.

test_controller.test_uniform_dispersion_randomizes_nested_sim_parameter()[source]

Verify generated dispersions update the live simulation parameter.

test_controller.test_uniform_vector_angle_dispersion_uses_bounds_off_nominal(monkeypatch)[source]

Verify angle dispersions use bounds centered on the nominal vector.

test_controller.test_vector_angle_dispersion_reads_nested_method_path()[source]

Verify vector dispersions read nested zero-argument method paths.

test_controller.test_worker_settings_reject_invalid_values(method, invalid)[source]

Reject settings that cannot provide a positive worker or queue limit.

test_controller.test_writer_failure_raises_and_cleans_up(tmp_path, monkeypatch, workers, writer)[source]

Report writer failure during production or shutdown without hanging.