Snapshot WIP: solver HP epic progress, BPHX/HX physics, BMAD skill refresh.
Some checks failed
CI / check (push) Has been cancelled

Capture uncommitted solver robustness work (regularization, domain errors, linear solver lifecycle, tube DP/MSH), web workbench updates, and synced BMAD skills across IDE agent folders before starting BPHX pressure-drop.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-19 16:35:31 +02:00
parent 88620790d6
commit 5bd180b5b8
1363 changed files with 101041 additions and 58547 deletions

586
test_lib_output.txt Normal file
View File

@@ -0,0 +1,586 @@
cargo : warning: variable does not need to be mutable
Au caractère C:\Users\serameza\AppData\Local\Temp\ps-script-c2328072-5a8c-42d6-bf50-3d2ba9006627.ps1:96 : 59
+ ... in\entropyk"; cargo test --package entropyk-solver --lib 2>&1 | Out-F ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (warning: variab...d to be mutable:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
--> crates\components\src\screw_economizer_compressor.rs:623:13
|
623 | let mut incoming_iter = external_edge_state_indices.iter()
| ----^^^^^^^^^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
warning: struct `MockBrineBackend` is never constructed
--> crates\components\src\brine_boundary.rs:601:12
|
601 | struct MockBrineBackend;
| ^^^^^^^^^^^^^^^^
|
= note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
warning: associated function `new` is never used
--> crates\components\src\brine_boundary.rs:604:12
|
603 | impl MockBrineBackend {
| --------------------- associated function in this implementation
604 | fn new() -> Self {
| ^^^
warning: function `make_port` is never used
--> crates\components\src\brine_boundary.rs:676:8
|
676 | fn make_port(fluid: &str, p_pa: f64, h_jkg: f64) -> ConnectedPort {
| ^^^^^^^^^
warning: constant `K_AIR` is never used
--> crates\components\src\heat_exchanger\fin_coil_condenser.rs:92:7
|
92 | const K_AIR: f64 = 0.0270;
| ^^^^^
warning: constant `RHO_AIR_STD` is never used
--> crates\components\src\heat_exchanger\fin_coil_condenser.rs:96:7
|
96 | const RHO_AIR_STD: f64 = 1.145;
| ^^^^^^^^^^^
warning: missing documentation for a method
--> crates\components\src\heat_exchanger\condenser.rs:218:5
|
218 | pub fn hot_inlet_state(&self) -> Result<entropyk_fluids::ThermoState, ComponentError> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
note: the lint level is defined here
--> crates\components\src\lib.rs:55:9
|
55 | #![warn(missing_docs)]
| ^^^^^^^^^^^^
warning: missing documentation for a method
--> crates\components\src\heat_exchanger\evaporator.rs:244:5
|
244 | pub fn hot_inlet_state(&self) -> Result<entropyk_fluids::ThermoState, ComponentError> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a method
--> crates\components\src\isentropic_compressor.rs:135:5
|
135 | pub fn isentropic_efficiency(&self) -> f64 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a method
--> crates\components\src\isentropic_compressor.rs:139:5
|
139 | pub fn t_cond_k(&self) -> f64 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a method
--> crates\components\src\isentropic_compressor.rs:143:5
|
143 | pub fn t_evap_k(&self) -> f64 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a method
--> crates\components\src\isentropic_compressor.rs:147:5
|
147 | pub fn superheat_k(&self) -> f64 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\registry.rs:18:24
|
18 | MissingParameter { component: String, parameter: String },
| ^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\registry.rs:18:43
|
18 | MissingParameter { component: String, parameter: String },
| ^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\registry.rs:20:24
|
20 | InvalidParameter { component: String, parameter: String, reason: String },
| ^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\registry.rs:20:43
|
20 | InvalidParameter { component: String, parameter: String, reason: String },
| ^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\registry.rs:20:62
|
20 | InvalidParameter { component: String, parameter: String, reason: String },
| ^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1002:5
|
1002 | pub fluid: FluidId,
| ^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1003:5
|
1003 | pub p_set_pa: f64,
| ^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1004:5
|
1004 | pub quality: f64,
| ^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1005:5
|
1005 | pub edge_indices: Vec<(usize, usize)>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1097:5
|
1097 | pub fluid: FluidId,
| ^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1098:5
|
1098 | pub p_back_pa: f64,
| ^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1099:5
|
1099 | pub quality_opt: Option<f64>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1100:5
|
1100 | pub edge_indices: Vec<(usize, usize)>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1188:5
|
1188 | pub fluid: FluidId,
| ^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1189:5
|
1189 | pub concentration: f64,
| ^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1190:5
|
1190 | pub temperature_k: f64,
| ^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1191:5
|
1191 | pub pressure_pa: f64,
| ^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1192:5
|
1192 | pub edge_indices: Vec<(usize, usize)>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1292:5
|
1292 | pub p_back_pa: f64,
| ^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1293:5
|
1293 | pub edge_indices: Vec<(usize, usize)>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1366:5
|
1366 | pub temperature_k: f64,
| ^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1367:5
|
1367 | pub relative_humidity: f64,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1368:5
|
1368 | pub pressure_pa: f64,
| ^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1369:5
|
1369 | pub edge_indices: Vec<(usize, usize)>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1456:5
|
1456 | pub p_back_pa: f64,
| ^^^^^^^^^^^^^^^^^^
warning: missing documentation for a struct field
--> crates\components\src\python_components.rs:1457:5
|
1457 | pub edge_indices: Vec<(usize, usize)>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
warning: `entropyk-components` (lib) generated 38 warnings (run `cargo fix --lib -p entropyk-components` to apply 1
suggestion)
Compiling entropyk-solver v0.1.0 (C:\Users\serameza\impact\dev\Entropyk-main\entropyk\crates\solver)
warning: variable does not need to be mutable
--> crates\solver\src\inverse\calibration.rs:1005:13
|
1005 | let mut sys = System::new();
| ----^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
warning: variable does not need to be mutable
--> crates\solver\src\inverse\calibration.rs:1021:13
|
1021 | let mut sys = System::new();
| ----^^^
| |
| help: remove this `mut`
warning: value assigned to `eq_offset` is never read
--> crates\solver\src\system.rs:1900:9
|
1900 | eq_offset += n_couplings;
| ^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: maybe it is overwritten before being read?
= note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default
warning: field `n_ports` is never read
--> crates\solver\src\snapshot_params.rs:25:5
|
22 | pub struct ParamsPlaceholder {
| ----------------- field in this struct
...
25 | n_ports: usize,
| ^^^^^^^
|
= note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
warning: `entropyk-solver` (lib test) generated 4 warnings (run `cargo fix --lib -p entropyk-solver --tests` to apply
2 suggestions)
Finished `test` profile [unoptimized + debuginfo] target(s) in 5.58s
Running unittests src\lib.rs (target\debug\deps\entropyk_solver-db085922d4b7b835.exe)
running 256 tests
test coupling::tests::test_circular_dependency_complex ... ok
test coupling::tests::test_circular_dependency_detection ... ok
test coupling::tests::test_compute_coupling_heat_negative ... ok
test coupling::tests::test_coupling_groups_empty ... ok
test coupling::tests::test_compute_coupling_heat_with_efficiency ... ok
test coupling::tests::test_compute_coupling_heat_positive ... ok
test coupling::tests::test_coupling_groups_with_cycle ... ok
test coupling::tests::test_efficiency_clamped ... ok
test coupling::tests::test_compute_coupling_heat_zero ... ok
test coupling::tests::test_energy_conservation ... ok
test coupling::tests::test_thermal_coupling_creation ... ok
test coupling::tests::test_empty_couplings_no_cycle ... ok
test coupling::tests::test_thermal_coupling_with_efficiency ... ok
test coupling::tests::test_no_circular_dependency ... ok
test criteria::tests::test_convergence_report_empty_circuits_not_globally_converged ... ok
test criteria::tests::test_convergence_report_is_globally_converged_all_true ... ok
test coupling::tests::test_coupling_groups_no_cycle ... ok
test coupling::tests::test_single_coupling_no_cycle ... ok
test criteria::tests::test_convergence_report_is_globally_converged_one_fails ... ok
test criteria::tests::test_default_thresholds ... ok
test criteria::tests::test_circuit_convergence_converged_field ... ok
test criteria::tests::test_custom_thresholds ... ok
test criteria::tests::test_multi_circuit_all_converged ... ok
test criteria::tests::test_multi_circuit_global_needs_all ... ok
test criteria::tests::test_report_per_circuit_count ... ok
test initializer::tests::test_antoine_r134a_at_0c ... ok
test initializer::tests::test_antoine_r744_at_20c ... ok
test initializer::tests::test_fluid_lookup_case_insensitive ... ok
test initializer::tests::test_fluid_lookup_unknown ... ok
test initializer::tests::test_p_cond_approach_default ... ok
test initializer::tests::test_p_evap_below_critical_all_fluids ... ok
test initializer::tests::test_p_evap_clamped_above_critical ... ok
test initializer::tests::test_p_evap_uses_approach_delta ... ok
test initializer::tests::test_populate_state_2_edges ... ok
test initializer::tests::test_populate_state_length_mismatch ... ok
test initializer::tests::test_unknown_fluid_fallback ... ok
test inverse::bounded::tests::test_apply_step ... ok
test initializer::tests::test_populate_state_multi_circuit ... ok
test inverse::bounded::tests::test_bounded_variable_creation ... ok
test inverse::bounded::tests::test_bounded_variable_id_creation ... ok
test inverse::bounded::tests::test_bounded_variable_id_from_impls ... ok
test inverse::bounded::tests::test_bounded_variable_with_component ... ok
test inverse::bounded::tests::test_clip_step_exceeds_max ... ok
test inverse::bounded::tests::test_clip_step_exceeds_min ... ok
test inverse::bounded::tests::test_clip_step_infinity ... ok
test inverse::bounded::tests::test_clip_step_nan_handling ... ok
test inverse::bounded::tests::test_clip_step_standalone ... ok
test inverse::bounded::tests::test_clip_step_within_bounds ... ok
test inverse::bounded::tests::test_distance_to_bound ... ok
test inverse::bounded::tests::test_error_display ... ok
test inverse::bounded::tests::test_invalid_bounds_min_eq_max ... ok
test inverse::bounded::tests::test_invalid_bounds_min_gt_max ... ok
test inverse::bounded::tests::test_is_within_bounds ... ok
test inverse::bounded::tests::test_no_saturation_in_middle ... ok
test inverse::bounded::tests::test_saturation_at_max ... ok
test inverse::bounded::tests::test_saturation_at_min ... ok
test inverse::bounded::tests::test_saturation_info_with_constraint_target ... ok
test inverse::bounded::tests::test_saturation_type_display ... ok
test inverse::bounded::tests::test_set_value_invalid ... ok
test inverse::bounded::tests::test_set_value_valid ... ok
test inverse::bounded::tests::test_value_out_of_bounds_above ... ok
test inverse::bounded::tests::test_value_out_of_bounds_below ... ok
test inverse::calibration::tests::test_calib_factor_default_bounds ... ok
test inverse::calibration::tests::test_calib_factor_display ... ok
test inverse::calibration::tests::test_calib_factor_order ... ok
test inverse::calibration::tests::test_calib_factor_serialize_roundtrip ... ok
test inverse::calibration::tests::test_calib_request_default_bounds ... ok
test inverse::calibration::tests::test_calib_request_key ... ok
test inverse::calibration::tests::test_calibration_error_component_not_found ... ok
test inverse::calibration::tests::test_calibration_error_dof_mismatch ... ok
test inverse::calibration::tests::test_calibration_mode_default ... ok
test inverse::calibration::tests::test_calibration_problem_builder ... ok
test inverse::calibration::tests::test_calibration_result_mape ... ok
test inverse::calibration::tests::test_calibration_result_json_roundtrip ... ok
test inverse::calibration::tests::test_calibration_result_mape_empty ... ok
test inverse::calibration::tests::test_calibration_target_constructors ... ok
test inverse::calibration::tests::test_calibration_target_to_constraint ... ok
test inverse::constraint::tests::test_component_output_component_id ... ok
test inverse::constraint::tests::test_constraint_compute_residual ... ok
test inverse::constraint::tests::test_constraint_creation ... ok
test inverse::constraint::tests::test_constraint_error_display ... ok
test inverse::constraint::tests::test_constraint_id_creation ... ok
test inverse::constraint::tests::test_constraint_id_from_str ... ok
test inverse::constraint::tests::test_constraint_id_from_string ... ok
test inverse::constraint::tests::test_constraint_invalid_tolerance ... ok
test inverse::constraint::tests::test_constraint_is_satisfied ... ok
test inverse::constraint::tests::test_constraint_with_tolerance ... ok
test inverse::embedding::tests::test_control_mapping_creation ... ok
test inverse::embedding::tests::test_control_mapping_disabled ... ok
test inverse::embedding::tests::test_control_mapping_enable_disable ... ok
test inverse::embedding::tests::test_dof_error_already_linked ... ok
test inverse::embedding::tests::test_dof_error_constraint_not_found ... ok
test inverse::embedding::tests::test_dof_error_display ... ok
test inverse::embedding::tests::test_inverse_control_config_clear ... ok
test inverse::embedding::tests::test_inverse_control_config_disabled ... ok
test inverse::embedding::tests::test_inverse_control_config_enable_disable ... ok
test inverse::embedding::tests::test_inverse_control_config_is_linked ... ok
test inverse::embedding::tests::test_inverse_control_config_link ... ok
test inverse::embedding::tests::test_inverse_control_config_link_already_linked_constraint ... ok
test inverse::embedding::tests::test_inverse_control_config_link_already_linked_control ... ok
test inverse::embedding::tests::test_inverse_control_config_mappings_iterator ... ok
test inverse::embedding::tests::test_inverse_control_config_new ... ok
test inverse::embedding::tests::test_inverse_control_config_unlink_constraint ... ok
test inverse::embedding::tests::test_inverse_control_config_unlink_control ... ok
test jacobian::tests::test_from_builder_accumulates ... ok
test jacobian::tests::test_from_builder_out_of_bounds_ignored ... ok
test jacobian::tests::test_condition_number ... ok
test jacobian::tests::test_from_builder_simple ... ok
test jacobian::tests::test_norm ... ok
test jacobian::tests::test_numerical_jacobian_linear ... ok
test jacobian::tests::test_numerical_jacobian_quadratic ... ok
test jacobian::tests::test_numerical_vs_analytical_agree ... ok
test jacobian::tests::test_ruiz_equilibration_unit_norms ... ok
test jacobian::tests::test_ruiz_reduces_condition_number ... ok
test jacobian::tests::test_set_and_get ... ok
test jacobian::tests::test_solve_diagonal ... ok
test jacobian::tests::test_solve_full_matrix ... ok
test jacobian::tests::test_solve_identity ... ok
test jacobian::tests::test_solve_illconditioned_matches_known_solution ... ok
test jacobian::tests::test_solve_singular_returns_none ... ok
test jacobian::tests::test_solve_with_nan_entry_returns_none ... ok
test jacobian::tests::test_solve_wrong_residual_length ... ok
test jacobian::tests::test_solve_zero_matrix_returns_none ... ok
test jacobian::tests::test_zeros ... ok
test macro_component::tests::test_compute_residuals_delegation ... ok
test macro_component::tests::test_compute_residuals_state_too_short ... ok
test macro_component::tests::test_compute_residuals_with_offset ... ok
test macro_component::tests::test_coupling_residuals_and_jacobian ... ok
test macro_component::tests::test_expose_multiple_ports ... ok
test macro_component::tests::test_expose_port_adds_coupling_equations ... ok
test macro_component::tests::test_jacobian_entries_delegation ... ok
test macro_component::tests::test_expose_port_out_of_range - should panic ... ok
test macro_component::tests::test_macro_component_as_trait_object ... ok
test macro_component::tests::test_jacobian_entries_with_offset ... ok
test macro_component::tests::test_macro_component_creation ... ok
test macro_component::tests::test_macro_component_in_parent_system ... ok
test macro_component::tests::test_n_equations_empty_system ... ok
test macro_component::tests::test_snapshot_round_trip ... ok
test snapshot::tests::test_camel_case_output ... ok
test snapshot::tests::test_solver_config_default ... ok
test snapshot::tests::test_backward_compat_missing_fields ... ok
test solver::tests::test_apply_newton_step_invalid_bounds_do_not_panic ... ok
test snapshot::tests::test_system_snapshot_serialization ... ok
test solver::tests::test_bounded_variable_clipped_at_max ... ok
test solver::tests::test_bounded_variable_clipped_at_min ... ok
test solver::tests::test_box_dyn_solver_can_call_solve ... ok
test solver::tests::test_box_dyn_solver_compiles ... ok
test solver::tests::test_converged_state_fields_accessible ... ok
test solver::tests::test_converged_state_timed_out_not_converged ... ok
test solver::tests::test_diagnostics_dominant_residual_serializes_to_json ... ok
test solver::tests::test_dominant_residual_empty_vector ... ok
test solver::tests::test_dominant_residual_picks_largest_magnitude ... ok
test solver::tests::test_dominant_residual_surfaces_nan ... ok
test solver::tests::test_error_non_convergence_display ... ok
test solver::tests::test_edge_states_not_clipped ... ok
test solver::tests::test_final_dominant_residual_reports_last_iteration ... ok
test solver::tests::test_solver_trait_object_safety ... ok
test solver::tests::test_solver_error_exposes_failure_diagnostics ... ok
test strategies::fallback::tests::test_fallback_config_defaults ... ok
test strategies::fallback::tests::test_fallback_homotopy_disabled_by_default ... ok
test strategies::fallback::tests::test_fallback_solver_with_timeout ... ok
test strategies::fallback::tests::test_fallback_with_homotopy_sets_config ... ok
test strategies::fallback::tests::test_fallback_solver_trait_object ... ok
test strategies::fallback::tests::test_fallback_solver_new ... ok
test strategies::fallback::tests::test_invalid_system_not_retried_by_homotopy ... ok
test strategies::fallback::tests::test_with_initial_state_propagates_to_homotopy ... ok
test strategies::homotopy::tests::test_homotopy_builders ... ok
test strategies::homotopy::tests::test_homotopy_default_config ... ok
test strategies::homotopy::tests::test_homotopy_empty_system_errors ... ok
test strategies::homotopy::tests::test_homotopy_initial_steps_floor_is_one ... ok
test strategies::homotopy::tests::test_homotopy_residual_norm ... ok
test strategies::fallback::tests::test_with_timeout_propagates_to_homotopy ... ok
test strategies::homotopy::tests::test_homotopy_with_timeout_sets_field ... ok
test strategies::newton_raphson::tests::test_newton_config_default ... ok
test strategies::newton_raphson::tests::test_newton_config_with_timeout ... ok
test strategies::newton_raphson::tests::test_newton_solver_trait_object ... ok
test strategies::sequential_substitution::tests::test_picard_apply_relaxation_formula ... ok
test strategies::sequential_substitution::tests::test_picard_config_default_sensible ... ok
test strategies::sequential_substitution::tests::test_picard_config_with_timeout ... ok
test strategies::sequential_substitution::tests::test_picard_residual_norm ... ok
test strategies::sequential_substitution::tests::test_picard_solver_trait_object ... ok
test strategies::tests::test_solver_strategy_default_is_newton_raphson ... ok
test strategies::tests::test_solver_strategy_newton_dispatch_reaches_stub ... ok
test strategies::tests::test_solver_strategy_newton_raphson_variant ... ok
test strategies::tests::test_solver_strategy_newton_with_timeout ... ok
test strategies::tests::test_solver_strategy_picard_dispatch_reaches_implementation ... ok
test strategies::tests::test_solver_strategy_picard_with_timeout ... ok
test strategies::tests::test_solver_strategy_sequential_substitution_variant ... ok
test system::tests::test_add_bounded_variable ... ok
test system::tests::test_add_bounded_variable_duplicate_id ... ok
test system::tests::test_add_bounded_variable_invalid_component ... ok
test system::tests::test_add_bounded_variable_with_valid_component ... ok
test system::tests::test_add_constraint ... ok
test system::tests::test_add_constraint_unregistered_component ... ok
test system::tests::test_add_duplicate_constraint ... ok
test system::tests::test_add_thermal_coupling_hot_circuit_invalid ... ok
test system::tests::test_add_thermal_coupling_invalid_circuit ... ok
test system::tests::test_add_thermal_coupling_valid ... ok
test system::tests::test_bounded_variables_iterator ... ok
test system::tests::test_circuit_count_and_accessors ... ok
test system::tests::test_compute_residuals_bounds_check ... FAILED
test system::tests::test_control_variable_indices ... ok
test system::tests::test_control_variable_state_index ... ok
test system::tests::test_cross_circuit_add_edge_with_ports_rejected ... ok
test system::tests::test_cross_circuit_edge_rejected ... ok
test system::tests::test_cycle_detected ... ok
test system::tests::test_dangling_node_error ... ok
test system::tests::test_edge_indices_contiguous ... ok
test system::tests::test_edge_kind_defaults_to_refrigerant ... ok
test system::tests::test_edge_state_mapping_distinct_in_range_ordered ... ok
test system::tests::test_empty_graph_finalize_ok ... ok
test system::tests::test_energy_balance_summary_warning ... ok
test system::tests::test_energy_balance_includes_component_type_in_warning ... ok
test system::tests::test_energy_balance_warns_for_skipped_components ... ok
test system::tests::test_enthalpy_mismatch_rejected ... ok
test system::tests::test_full_state_vector_len ... ok
test system::tests::test_generate_canonical_bytes ... ok
test system::tests::test_get_bounded_variable ... ok
test system::tests::test_get_bounded_variable_mut ... ok
test system::tests::test_get_constraint ... ok
test system::tests::test_incompatible_fluid_rejected ... ok
test system::tests::test_input_hash_deterministic ... ok
test system::tests::test_invalid_port_index_rejected ... ok
test system::tests::test_link_constraint_not_found ... ok
test system::tests::test_link_constraint_to_control ... ok
test system::tests::test_link_control_not_found ... ok
test system::tests::test_link_duplicate_constraint ... ok
test system::tests::test_link_duplicate_control ... ok
test system::tests::test_mass_balance_passes_for_balanced_component ... ok
test system::tests::test_mass_balance_tolerance_constant ... ok
test system::tests::test_mass_balance_violation ... ok
test system::tests::test_mass_flow_closure_count_is_zero ... ok
test system::tests::test_max_five_circuits ... ok
test system::tests::test_multiple_constraints ... ok
test system::tests::test_multiple_thermal_couplings ... ok
test system::tests::test_pressure_mismatch_rejected ... ok
test system::tests::test_pressure_tolerance_boundary ... ok
test system::tests::test_register_component_name ... ok
test system::tests::test_remove_bounded_variable ... ok
test system::tests::test_remove_constraint ... ok
test system::tests::test_saturated_variables ... ok
test system::tests::test_simple_cycle_builds ... ok
test system::tests::test_simple_cycle_port_validation ... ok
test system::tests::test_single_circuit_backward_compat ... ok
test system::tests::test_state_layout_integration ... ok
test system::tests::test_state_vector_len_is_3_times_edge_count ... ok
test system::tests::test_state_vector_length ... ok
test system::tests::test_thermal_coupling_same_circuit ... ok
test system::tests::test_traverse_components ... ok
test system::tests::test_two_circuit_machine ... ok
test system::tests::test_unlink_constraint ... ok
test system::tests::test_valid_connection_same_fluid ... ok
test system::tests::test_validate_inverse_control_dof_balanced ... FAILED
test system::tests::test_validate_inverse_control_dof_over_constrained ... FAILED
test system::tests::test_validate_inverse_control_dof_under_constrained ... FAILED
test system::tests::test_zero_flow_branch_residuals_and_jacobian_finite ... ok
failures:
---- system::tests::test_compute_residuals_bounds_check stdout ----
thread 'system::tests::test_compute_residuals_bounds_check' (14204) panicked at crates\solver\src\system.rs:3254:17:
assertion `left == right` failed
left: 4
right: 6
---- system::tests::test_validate_inverse_control_dof_balanced stdout ----
thread 'system::tests::test_validate_inverse_control_dof_balanced' (35148) panicked at crates\solver\src\system.rs:4345:9:
assertion failed: result.is_ok()
---- system::tests::test_validate_inverse_control_dof_over_constrained stdout ----
thread 'system::tests::test_validate_inverse_control_dof_over_constrained' (12352) panicked at crates\solver\src\system.rs:4393:9:
assertion failed: matches!(result, Err(DoFError::OverConstrainedSystem { .. }))
---- system::tests::test_validate_inverse_control_dof_under_constrained stdout ----
thread 'system::tests::test_validate_inverse_control_dof_under_constrained' (25248) panicked at crates\solver\src\system.rs:4453:9:
assertion failed: result.is_ok()
failures:
system::tests::test_compute_residuals_bounds_check
system::tests::test_validate_inverse_control_dof_balanced
system::tests::test_validate_inverse_control_dof_over_constrained
system::tests::test_validate_inverse_control_dof_under_constrained
test result: FAILED. 252 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s
error: test failed, to rerun pass `-p entropyk-solver --lib`