46 lines
1.6 KiB
Rust
46 lines
1.6 KiB
Rust
// 跨层类型兼容性测试
|
||
// 验证L0和L1层使用相同的NAC UDM类型定义
|
||
|
||
use nvm_l0::types::{Address as L0Address, Hash as L0Hash};
|
||
use nvm_l1::types::{Address as L1Address, Hash as L1Hash};
|
||
|
||
fn main() {
|
||
println!("=== NAC跨层类型兼容性测试 ===\n");
|
||
|
||
// 测试1: Address类型兼容性
|
||
println!("测试1: Address类型兼容性");
|
||
let addr_bytes = [1u8; 32];
|
||
let l0_addr = L0Address::new(addr_bytes);
|
||
let l1_addr = L1Address::new(addr_bytes);
|
||
|
||
println!(" L0 Address: {}", l0_addr.to_hex());
|
||
println!(" L1 Address: {}", l1_addr.to_hex());
|
||
assert_eq!(l0_addr.to_hex(), l1_addr.to_hex(), "Address类型不兼容!");
|
||
println!(" ✅ Address类型兼容\n");
|
||
|
||
// 测试2: Hash类型兼容性
|
||
println!("测试2: Hash类型兼容性");
|
||
let data = b"hello world";
|
||
let l0_hash = L0Hash::sha3_384(data);
|
||
let l1_hash = L1Hash::sha3_384(data);
|
||
|
||
println!(" L0 Hash: {}", l0_hash.to_hex());
|
||
println!(" L1 Hash: {}", l1_hash.to_hex());
|
||
assert_eq!(l0_hash.to_hex(), l1_hash.to_hex(), "Hash类型不兼容!");
|
||
println!(" ✅ Hash类型兼容\n");
|
||
|
||
// 测试3: 类型可以互相传递
|
||
println!("测试3: 类型传递测试");
|
||
fn process_address(addr: L0Address) -> String {
|
||
addr.to_hex()
|
||
}
|
||
|
||
// L1的Address应该可以传递给接受L0 Address的函数
|
||
// 因为它们实际上是同一个类型(来自NAC UDM)
|
||
let result = process_address(l1_addr);
|
||
println!(" 传递结果: {}", result);
|
||
println!(" ✅ 类型可以跨层传递\n");
|
||
|
||
println!("=== 所有测试通过!===");
|
||
}
|