#[cfg(test)]
mod tests {
use r3bl_rs_utils_core::*;
use crate::*;
#[test]
fn test_create_render_pipeline() {
let mut pipeline = render_pipeline!(@new_empty);
render_pipeline!(@push_into pipeline at ZOrder::Normal =>
RenderOp::ClearScreen,
RenderOp::ResetColor
);
assert_eq2!(pipeline.len(), 1);
let z_order_len = pipeline.get(&ZOrder::Normal).unwrap().len();
assert_eq2!(z_order_len, 2);
let first_item = pipeline.get(&ZOrder::Normal).unwrap().first().unwrap();
assert_eq2!(first_item, &RenderOp::ClearScreen);
let last_item = pipeline.get(&ZOrder::Normal).unwrap().last().unwrap();
assert_eq2!(last_item, &RenderOp::ResetColor);
let pipeline_1: RenderPipeline = {
let mut p = render_pipeline!(@new ZOrder::Normal
=>
RenderOp::ClearScreen,
RenderOp::ResetColor
);
render_pipeline!(@push_into p at ZOrder::Caret =>
RenderOp::ResetColor
);
p
};
let pipeline_2: RenderPipeline = render_pipeline!(@new ZOrder::Normal
=>
RenderOp::ClearScreen,
RenderOp::ResetColor
);
let pipeline_merged = render_pipeline!(@join_and_drop pipeline_1, pipeline_2);
assert_eq2!(pipeline_merged.len(), 2);
assert_eq2!(pipeline_merged.get(&ZOrder::Normal).unwrap().len(), 4);
assert_eq2!(pipeline_merged.get(&ZOrder::Caret).unwrap().len(), 1);
}
}