use grip::function_info::FunctionInfo;
fn sample() -> FunctionInfo {
FunctionInfo {
name: "process".to_string(),
file: "src/lib.rs".to_string(),
is_pure: true,
is_public: true,
hidden_deps: 1,
has_trait_seam: false,
dep_weight: 0.2,
hidden_dep_labels: vec!["println".to_string()],
grip_absolute: 0.8,
grip_normalized: 80,
}
}
#[test]
fn function_info_serializes_to_json() {
let info = sample();
let json = serde_json::to_string(&info).unwrap();
assert!(json.contains("process"));
assert!(json.contains("println"));
}
#[test]
fn function_info_deserializes_from_json() {
let json = r#"{"name":"compute","file":"src/main.rs","is_pure":false,"is_public":false,"hidden_deps":0,"has_trait_seam":true,"dep_weight":0.0,"hidden_dep_labels":[],"grip_absolute":0.85,"grip_normalized":85}"#;
let info: FunctionInfo = serde_json::from_str(json).unwrap();
assert_eq!(info.name, "compute");
assert!(info.has_trait_seam);
}