﻿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`
