#[tokio::test]
async fn test_realize_generate_endpoint_more_cov() {
let app = create_test_app_shared();
let json = r#"{"prompt":"test","max_tokens":3}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/realize/generate")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_realize_batch_endpoint_more_cov() {
let app = create_test_app_shared();
let json = r#"{"prompts":["test"],"max_tokens":3}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/realize/batch")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_gpu_batch_completions_empty_prompts_more_cov() {
let app = create_test_app_shared();
let json = r#"{"prompts":[]}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/batch/completions")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
let status = response.status();
assert!(status == StatusCode::BAD_REQUEST || status == StatusCode::SERVICE_UNAVAILABLE);
}
#[test]
fn test_model_metadata_response_clone_debug_more_cov() {
let metadata = ModelMetadataResponse {
id: "test".to_string(),
name: "Test".to_string(),
format: Some("GGUF".to_string()),
size_bytes: Some(1000),
quantization: None,
context_length: Some(4096),
model_max_context_length: None,
architecture: None,
lineage: None,
loaded: true,
};
let cloned = metadata.clone();
assert_eq!(metadata.id, cloned.id);
let debug_str = format!("{:?}", metadata);
assert!(debug_str.contains("test"));
}
#[test]
fn test_explain_response_serialize_more_cov() {
let resp = ExplainResponse {
request_id: "req-1".to_string(),
model: "model-1".to_string(),
prediction: serde_json::json!(0.8),
confidence: Some(0.8),
explanation: ShapExplanation {
base_value: 0.5,
shap_values: vec![0.1, 0.2],
feature_names: vec!["f1".to_string(), "f2".to_string()],
prediction: 0.8,
},
summary: "Feature f2 contributes most".to_string(),
latency_ms: 5.0,
};
let json = serde_json::to_string(&resp).expect("serialize");
assert!(json.contains("req-1"));
assert!(json.contains("f2 contributes"));
}
#[test]
fn test_predict_response_with_top_k_more_cov() {
let resp = PredictResponse {
request_id: "req-2".to_string(),
model: "classifier".to_string(),
prediction: serde_json::json!("class_0"),
confidence: Some(0.9),
top_k_predictions: Some(vec![
PredictionWithScore {
label: "class_0".to_string(),
score: 0.9,
},
PredictionWithScore {
label: "class_1".to_string(),
score: 0.1,
},
]),
latency_ms: 2.5,
};
let json = serde_json::to_string(&resp).expect("serialize");
assert!(json.contains("class_0"));
assert!(json.contains("class_1"));
}
#[tokio::test]
async fn test_deep_apicov_completions_endpoint_cpu_fallback() {
let app = create_test_app_shared();
let json = r#"{"model":"default","prompt":"test token1","max_tokens":3,"temperature":0.0}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/completions")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
crate::api::test_helpers::assert_no_model_status(response.status());
let body = axum::body::to_bytes(response.into_body(), usize::MAX)
.await
.expect("test");
let result: ErrorResponse = match serde_json::from_slice(&body) {
Ok(v) => v,
Err(_) => return, };
assert!(!result.error.is_empty()); }
#[tokio::test]
async fn test_deep_apicov_completions_empty_prompt_error() {
let app = create_test_app_shared();
let json = r#"{"model":"default","prompt":"","max_tokens":5}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/completions")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::BAD_REQUEST
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_completions_with_top_p() {
let app = create_test_app_shared();
let json = r#"{"model":"default","prompt":"token1","max_tokens":2,"top_p":0.95}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/completions")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_chat_completions_empty_messages() {
let app = create_test_app_shared();
let json = r#"{"model":"default","messages":[]}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/chat/completions")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::BAD_REQUEST
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_chat_completions_with_top_p() {
let app = create_test_app_shared();
let json = r#"{"model":"default","messages":[{"role":"user","content":"hello"}],"top_p":0.9}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/chat/completions")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_stream_generate_valid_request() {
let app = create_test_app_shared();
let json = r#"{"prompt":"token1","max_tokens":2,"strategy":"greedy"}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/stream/generate")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_stream_generate_empty_prompt() {
let app = create_test_app_shared();
let json = r#"{"prompt":"","max_tokens":2,"strategy":"greedy"}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/stream/generate")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::BAD_REQUEST
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_stream_generate_top_k_strategy() {
let app = create_test_app_shared();
let json = r#"{"prompt":"token1","max_tokens":2,"strategy":"top_k","top_k":5,"seed":123}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/stream/generate")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_stream_generate_top_p_strategy() {
let app = create_test_app_shared();
let json = r#"{"prompt":"token1","max_tokens":2,"strategy":"top_p","top_p":0.9,"seed":456}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/stream/generate")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_chat_completions_stream_endpoint() {
let app = create_test_app_shared();
let json = r#"{"model":"default","messages":[{"role":"user","content":"hi"}],"stream":true}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/chat/completions/stream")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::OK
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}
#[tokio::test]
async fn test_deep_apicov_chat_completions_stream_empty_messages() {
let app = create_test_app_shared();
let json = r#"{"model":"default","messages":[]}"#;
let response = app
.oneshot(
Request::builder()
.method("POST")
.uri("/v1/chat/completions/stream")
.header("content-type", "application/json")
.body(Body::from(json))
.expect("test"),
)
.await
.expect("test");
assert!(
response.status() == StatusCode::BAD_REQUEST
|| response.status() == StatusCode::NOT_FOUND
|| response.status() == StatusCode::INTERNAL_SERVER_ERROR
|| response.status() == StatusCode::SERVICE_UNAVAILABLE
|| response.status() == StatusCode::UNPROCESSABLE_ENTITY
);
}