use ruchy::runtime::interpreter::Value;
use ruchy::wasm::shared_session::{DefId, ExecuteResponse, ExecutionMode, SharedSession};
#[test]
fn test_shared_session_new() {
let _session = SharedSession::new();
assert!(true);
}
#[test]
fn test_shared_session_default() {
let _session = SharedSession::default();
assert!(true);
}
#[test]
fn test_execution_mode_variants() {
let _manual = ExecutionMode::Manual;
let _reactive = ExecutionMode::Reactive;
assert!(true);
}
#[test]
fn test_set_execution_mode() {
let mut session = SharedSession::new();
session.set_execution_mode(ExecutionMode::Reactive);
session.set_execution_mode(ExecutionMode::Manual);
assert!(true);
}
#[test]
fn test_def_id_equality() {
let id1 = DefId(1);
let id2 = DefId(1);
let id3 = DefId(2);
assert_eq!(id1, id2);
assert_ne!(id1, id3);
}
#[test]
fn test_execute_response_success() {
let value = Value::Integer(42);
let response = ExecuteResponse::success(value);
assert!(response.success);
}
#[test]
fn test_execute_response_error() {
let response = ExecuteResponse::error("Test error".to_string());
assert!(!response.success);
}
#[test]
fn test_execute_simple() {
let mut session = SharedSession::new();
let result = session.execute("cell1", "42");
assert!(result.is_ok() || result.is_err());
}
#[test]
fn test_execute_error() {
let mut session = SharedSession::new();
let result = session.execute("cell1", "(((");
assert!(result.is_ok() || result.is_err());
}
#[test]
fn test_execute_multiple() {
let mut session = SharedSession::new();
let _ = session.execute("cell1", "let x = 10");
let _ = session.execute("cell2", "let y = 20");
assert!(true);
}
#[test]
fn test_execution_modes() {
let mut session = SharedSession::new();
session.set_execution_mode(ExecutionMode::Manual);
session.set_execution_mode(ExecutionMode::Reactive);
assert!(true);
}
#[test]
fn test_memory_estimate() {
let session = SharedSession::new();
let memory = session.estimate_interpreter_memory();
assert!(memory >= 0);
}
#[test]
fn test_dependency_cycle() {
let session = SharedSession::new();
let has_cycle = session.has_dependency_cycle();
assert!(!has_cycle);
}
#[test]
fn test_get_dependencies() {
let session = SharedSession::new();
let deps = session.get_dependencies("cell1");
assert!(deps.is_empty());
}
#[test]
fn test_explain_reactive() {
let session = SharedSession::new();
let _plan = session.explain_reactive("cell1");
assert!(true);
}
#[test]
fn test_execute_reactive() {
let mut session = SharedSession::new();
session.set_execution_mode(ExecutionMode::Reactive);
let responses = session.execute_reactive("cell1", "42");
assert!(responses.is_empty() || !responses.is_empty());
}
#[test]
fn test_multiple_sessions() {
let _s1 = SharedSession::new();
let _s2 = SharedSession::new();
let _s3 = SharedSession::default();
assert!(true);
}
#[test]
fn test_many_executions() {
let mut session = SharedSession::new();
for i in 0..50 {
let _ = session.execute(&format!("cell{}", i), &format!("{}", i));
}
assert!(true);
}