mod test_utils;
use test_utils::*;
#[test]
fn test_parse_basic_model() {
let graph = load_onnx("basic_model.onnx");
assert!(!graph.nodes.is_empty(), "Graph should have nodes");
assert!(!graph.inputs.is_empty(), "Graph should have inputs");
assert!(!graph.outputs.is_empty(), "Graph should have outputs");
assert!(has_node_type(&graph, |n| matches!(
n,
onnx_ir::ir::Node::Relu { .. }
)));
assert!(has_node_type(&graph, |n| matches!(
n,
onnx_ir::ir::Node::PRelu { .. }
)));
assert!(has_node_type(&graph, |n| matches!(
n,
onnx_ir::ir::Node::Add { .. }
)));
assert_eq!(graph.inputs.len(), 1, "Expected 1 input");
assert_eq!(graph.outputs.len(), 1, "Expected 1 output");
}
#[test]
fn test_parse_multi_io() {
let graph = load_onnx("multi_io.onnx");
assert_eq!(graph.inputs.len(), 3, "Expected 3 inputs");
assert_eq!(graph.outputs.len(), 2, "Expected 2 outputs");
assert!(
count_operation_nodes(&graph) >= 3,
"Expected operation nodes"
);
}
#[test]
fn test_parse_edge_cases() {
let graph = load_onnx("edge_cases.onnx");
assert_eq!(graph.inputs.len(), 1);
assert_eq!(graph.outputs.len(), 3);
assert_eq!(count_operation_nodes(&graph), 3);
}