use moonlab::control_plane::{submit_circuit, ControlPlaneServer};
use moonlab::qgtl::{GateType, QgtlCircuit};
#[test]
fn lifecycle_wrapper_round_trip() {
let srv = ControlPlaneServer::open("127.0.0.1", 0).expect("open");
let port = srv.port();
assert!(port != 0, "expected OS-chosen port");
let mut c = QgtlCircuit::new(2).unwrap();
c.add_gate(GateType::H, 0, -1, &[]).unwrap();
c.add_gate(GateType::Cnot, 1, 0, &[]).unwrap();
let text = c.serialize().unwrap();
let probs = submit_circuit("127.0.0.1", port, &text).expect("submit");
assert_eq!(probs.len(), 4);
assert!((probs[0] - 0.5).abs() < 1e-9);
assert!((probs[3] - 0.5).abs() < 1e-9);
drop(srv);
}
#[test]
fn lifecycle_shutdown_signaled_externally() {
let srv = ControlPlaneServer::open("127.0.0.1", 0).expect("open");
let _port = srv.port();
srv.shutdown();
drop(srv); }