Add multiple features
This commit is contained in:
@@ -200,3 +200,32 @@ fn overlap_v6(a: Ipv6Net, b: Ipv6Net) -> bool {
|
||||
let b_end = u128::from(b.broadcast());
|
||||
a_start <= b_end && b_start <= a_end
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn subnet_v4_from_mask() {
|
||||
let info = subnet_info("192.168.1.10 255.255.255.0").expect("subnet");
|
||||
assert_eq!(info.cidr, "192.168.1.10/24");
|
||||
assert_eq!(info.network, "192.168.1.0");
|
||||
assert_eq!(info.broadcast.as_deref(), Some("192.168.1.255"));
|
||||
assert_eq!(info.usable_addresses, "254");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn contains_and_overlap() {
|
||||
assert!(contains("192.168.0.0/16", "192.168.1.0/24").unwrap());
|
||||
assert!(overlap("10.0.0.0/24", "10.0.0.128/25").unwrap());
|
||||
assert!(!overlap("10.0.0.0/24", "10.0.1.0/24").unwrap());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn summarize_ipv4() {
|
||||
let inputs = vec!["10.0.0.0/24".to_string(), "10.0.1.0/24".to_string()];
|
||||
let result = summarize(&inputs).expect("summarize");
|
||||
assert_eq!(result.len(), 1);
|
||||
assert_eq!(result[0].to_string(), "10.0.0.0/23");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user