adder_codec_core/codec/compressed/
mod.rs1pub mod fenwick;
2mod source_model;
3pub mod stream;
5
6pub const BLOCK_SIZE_BIG: usize = 64;
7
8pub const BLOCK_SIZE_BIG_AREA: usize = BLOCK_SIZE_BIG * BLOCK_SIZE_BIG;
9
10pub type DResidual = i16;
11pub const DRESIDUAL_NO_EVENT: DResidual = 256;
12pub const DRESIDUAL_SKIP_CUBE: DResidual = 257;
13pub type TResidual = i16;
14
15#[cfg(test)]
16mod tests {
17 use crate::codec::encoder::Encoder;
18 use crate::codec::{CodecMetadata, EncoderOptions};
19 use crate::{Coord, Event, PlaneSize};
20
21 #[test]
22 fn test_create_compressed_stream() {
23 let meta = CodecMetadata {
25 delta_t_max: 100,
26 ref_interval: 100,
27 ..Default::default()
28 };
29
30 let output = crate::codec::compressed::stream::CompressedOutput::new(meta, Vec::new());
31 let mut encoder = Encoder::new_compressed(
32 output,
33 EncoderOptions::default(PlaneSize {
34 width: 100,
35 height: 100,
36 channels: 1,
37 }),
38 );
39 let meta = *encoder.meta();
40 let mut test_event = Event {
41 coord: Coord {
42 x: 0,
43 y: 0,
44 c: None,
45 },
46 d: 5,
47 t: 100,
48 };
49 encoder.ingest_event(test_event).unwrap();
50 encoder.flush_writer().unwrap();
51 let writer = encoder.close_writer().unwrap().unwrap();
52
53 let tmp_len = writer.len();
54
55 assert!(writer.len() > meta.header_size);
57
58 let output = crate::codec::compressed::stream::CompressedOutput::new(meta, Vec::new());
59 let mut encoder = Encoder::new_compressed(
60 output,
61 EncoderOptions::default(PlaneSize {
62 width: 100,
63 height: 100,
64 channels: 1,
65 }),
66 );
67 let meta = *encoder.meta();
68 dbg!(meta);
69 encoder.ingest_event(test_event).unwrap();
70 test_event.t += 100;
71 encoder.ingest_event(test_event).unwrap();
72 test_event.t += 100;
73 encoder.ingest_event(test_event).unwrap();
74 encoder.flush_writer().unwrap();
75 let writer = encoder.close_writer().unwrap().unwrap();
76
77 assert!(writer.len() > tmp_len);
79 }
80}