1
pub use scripting_format::*;
2

            
3
#[cfg(test)]
4
mod tests {
5
    use super::*;
6

            
7
    #[test]
8
1
    fn test_global_header_roundtrip() {
9
1
        let header = GlobalHeader::new(ContextType::EntityCreate, EntityType::Transaction, 5, 0);
10
1
        let bytes = header.as_bytes();
11
1
        let parsed = GlobalHeader::from_bytes(bytes).unwrap();
12
1
        assert_eq!(parsed.magic, MAGIC_NOMI);
13
1
        assert_eq!(parsed.version, FORMAT_VERSION);
14
1
        assert_eq!(parsed.context_type, ContextType::EntityCreate as u8);
15
1
        assert_eq!(parsed.primary_entity_type, EntityType::Transaction as u8);
16
1
        assert_eq!(parsed.input_entity_count, 5);
17
1
    }
18

            
19
    #[test]
20
1
    fn test_entity_header_roundtrip() {
21
1
        let id = [1u8; 16];
22
1
        let header = EntityHeader::new(
23
1
            EntityType::Split,
24
1
            Operation::Create,
25
1
            EntityFlags::make(true, false),
26
1
            id,
27
            0,
28
            100,
29
            64,
30
        );
31
1
        let bytes = header.to_bytes();
32
1
        let parsed = EntityHeader::from_bytes(&bytes).unwrap();
33
1
        assert_eq!(parsed.entity_type, EntityType::Split as u8);
34
1
        assert_eq!(parsed.operation, Operation::Create as u8);
35
1
        assert!(EntityFlags::is_primary(parsed.flags));
36
1
        assert!(!EntityFlags::is_context(parsed.flags));
37
1
        assert_eq!(parsed.parent_idx, 0);
38
1
    }
39

            
40
    #[test]
41
1
    fn test_output_header_roundtrip() {
42
1
        let header = OutputHeader::new(10);
43
1
        let bytes = header.to_bytes();
44
1
        let parsed = OutputHeader::from_bytes(&bytes).unwrap();
45
1
        assert_eq!(parsed.magic, MAGIC_OUTP);
46
1
        assert_eq!(parsed.output_start_idx, 10);
47
1
    }
48
}