use crate::edge::Edge;
#[test]
fn test_edge_construction() {
let edge = Edge {
source_node: "node1".to_string(),
source_port: "out".to_string(),
target_node: "node2".to_string(),
target_port: "in".to_string(),
};
assert_eq!(edge.source_node, "node1");
assert_eq!(edge.source_port, "out");
assert_eq!(edge.target_node, "node2");
assert_eq!(edge.target_port, "in");
}
#[test]
fn test_edge_field_access() {
let mut edge = Edge {
source_node: "node1".to_string(),
source_port: "out".to_string(),
target_node: "node2".to_string(),
target_port: "in".to_string(),
};
assert_eq!(edge.source_node, "node1");
edge.source_node = "updated".to_string();
assert_eq!(edge.source_node, "updated");
}
#[test]
fn test_edge_methods() {
let edge = Edge {
source_node: "node1".to_string(),
source_port: "out".to_string(),
target_node: "node2".to_string(),
target_port: "in".to_string(),
};
assert_eq!(edge.source_node(), "node1");
assert_eq!(edge.source_port(), "out");
assert_eq!(edge.target_node(), "node2");
assert_eq!(edge.target_port(), "in");
}
#[test]
fn test_edge_methods_match_fields() {
let edge = Edge {
source_node: "source".to_string(),
source_port: "output".to_string(),
target_node: "target".to_string(),
target_port: "input".to_string(),
};
assert_eq!(edge.source_node(), &edge.source_node);
assert_eq!(edge.source_port(), &edge.source_port);
assert_eq!(edge.target_node(), &edge.target_node);
assert_eq!(edge.target_port(), &edge.target_port);
}
#[test]
fn test_edge_all_properties() {
let edge = Edge {
source_node: "producer".to_string(),
source_port: "out_0".to_string(),
target_node: "transformer".to_string(),
target_port: "in_1".to_string(),
};
assert_eq!(edge.source_node(), "producer");
assert_eq!(edge.source_port(), "out_0");
assert_eq!(edge.target_node(), "transformer");
assert_eq!(edge.target_port(), "in_1");
}
#[test]
fn test_edge_custom_port_names() {
let edge = Edge {
source_node: "source".to_string(),
source_port: "data".to_string(),
target_node: "sink".to_string(),
target_port: "input".to_string(),
};
assert_eq!(edge.source_port(), "data");
assert_eq!(edge.target_port(), "input");
}
#[test]
fn test_edge_empty_strings() {
let edge = Edge {
source_node: "".to_string(),
source_port: "".to_string(),
target_node: "".to_string(),
target_port: "".to_string(),
};
assert_eq!(edge.source_node(), "");
assert_eq!(edge.source_port(), "");
assert_eq!(edge.target_node(), "");
assert_eq!(edge.target_port(), "");
}
#[test]
fn test_edge_special_characters() {
let edge = Edge {
source_node: "node-1".to_string(),
source_port: "out_port".to_string(),
target_node: "node_2".to_string(),
target_port: "in.port".to_string(),
};
assert_eq!(edge.source_node(), "node-1");
assert_eq!(edge.source_port(), "out_port");
assert_eq!(edge.target_node(), "node_2");
assert_eq!(edge.target_port(), "in.port");
}
#[test]
fn test_edge_unicode_names() {
let edge = Edge {
source_node: "节点1".to_string(),
source_port: "输出".to_string(),
target_node: "节点2".to_string(),
target_port: "输入".to_string(),
};
assert_eq!(edge.source_node(), "节点1");
assert_eq!(edge.source_port(), "输出");
assert_eq!(edge.target_node(), "节点2");
assert_eq!(edge.target_port(), "输入");
}
#[test]
fn test_edge_long_names() {
let long_name = "a".repeat(1000);
let edge = Edge {
source_node: long_name.clone(),
source_port: "out".to_string(),
target_node: "target".to_string(),
target_port: "in".to_string(),
};
assert_eq!(edge.source_node().len(), 1000);
assert_eq!(edge.source_node(), long_name);
}