1pub use scripting_format::*;
2
3#[cfg(test)]
4mod tests {
5 use super::*;
6
7 #[test]
8 fn test_global_header_roundtrip() {
9 let header = GlobalHeader::new(ContextType::EntityCreate, EntityType::Transaction, 5, 0);
10 let bytes = header.as_bytes();
11 let parsed = GlobalHeader::from_bytes(bytes).unwrap();
12 assert_eq!(parsed.magic, MAGIC_NOMI);
13 assert_eq!(parsed.version, FORMAT_VERSION);
14 assert_eq!(parsed.context_type, ContextType::EntityCreate as u8);
15 assert_eq!(parsed.primary_entity_type, EntityType::Transaction as u8);
16 assert_eq!(parsed.input_entity_count, 5);
17 }
18
19 #[test]
20 fn test_entity_header_roundtrip() {
21 let id = [1u8; 16];
22 let header = EntityHeader::new(
23 EntityType::Split,
24 Operation::Create,
25 EntityFlags::make(true, false),
26 id,
27 0,
28 100,
29 64,
30 );
31 let bytes = header.to_bytes();
32 let parsed = EntityHeader::from_bytes(&bytes).unwrap();
33 assert_eq!(parsed.entity_type, EntityType::Split as u8);
34 assert_eq!(parsed.operation, Operation::Create as u8);
35 assert!(EntityFlags::is_primary(parsed.flags));
36 assert!(!EntityFlags::is_context(parsed.flags));
37 assert_eq!(parsed.parent_idx, 0);
38 }
39
40 #[test]
41 fn test_output_header_roundtrip() {
42 let header = OutputHeader::new(10);
43 let bytes = header.to_bytes();
44 let parsed = OutputHeader::from_bytes(&bytes).unwrap();
45 assert_eq!(parsed.magic, MAGIC_OUTP);
46 assert_eq!(parsed.output_start_idx, 10);
47 }
48}