feat(python): implement python bindings for all components and solvers

This commit is contained in:
Sepehr
2026-02-21 20:34:56 +01:00
parent 8ef8cd2eba
commit 4440132b0a
310 changed files with 11577 additions and 397 deletions

View File

@@ -8,8 +8,8 @@
//! - AC #5: Divergence detection
//! - AC #6: Pre-allocated buffers
use entropyk_solver::{PicardConfig, Solver, SolverError, System};
use approx::assert_relative_eq;
use entropyk_solver::{PicardConfig, Solver, SolverError, System};
use std::time::Duration;
// ─────────────────────────────────────────────────────────────────────────────
@@ -321,12 +321,7 @@ fn test_error_display_invalid_system() {
fn test_converged_state_is_converged() {
use entropyk_solver::{ConvergedState, ConvergenceStatus};
let state = ConvergedState::new(
vec![1.0, 2.0, 3.0],
25,
1e-7,
ConvergenceStatus::Converged,
);
let state = ConvergedState::new(vec![1.0, 2.0, 3.0], 25, 1e-7, ConvergenceStatus::Converged);
assert!(state.is_converged());
assert_eq!(state.iterations, 25);
@@ -369,9 +364,8 @@ fn test_solver_strategy_picard_dispatch() {
fn test_solver_strategy_picard_with_timeout() {
use entropyk_solver::SolverStrategy;
let strategy =
SolverStrategy::SequentialSubstitution(PicardConfig::default())
.with_timeout(Duration::from_millis(100));
let strategy = SolverStrategy::SequentialSubstitution(PicardConfig::default())
.with_timeout(Duration::from_millis(100));
match strategy {
SolverStrategy::SequentialSubstitution(cfg) => {
@@ -407,4 +401,4 @@ fn test_picard_dimension_mismatch_returns_error() {
}
other => panic!("Expected InvalidSystem, got {:?}", other),
}
}
}