Function noodles::csi::binning_index::merge_chunks[][src]

pub fn merge_chunks(chunks: &[Chunk]) -> Vec<Chunk, Global>
Expand description

Merges a list of chunks into a list of non-overlapping chunks.

This is the same as calling optimize_chunks with a min_offset of 0.

Examples

use noodles_bgzf as bgzf;
use noodles_csi::{
    binning_index::merge_chunks,
    index::reference_sequence::bin::Chunk,
};

let chunks = [
    Chunk::new(bgzf::VirtualPosition::from(2), bgzf::VirtualPosition::from(3)),
    Chunk::new(bgzf::VirtualPosition::from(5), bgzf::VirtualPosition::from(8)),
    Chunk::new(bgzf::VirtualPosition::from(7), bgzf::VirtualPosition::from(13)),
    Chunk::new(bgzf::VirtualPosition::from(21), bgzf::VirtualPosition::from(34)),
];

let actual = merge_chunks(&chunks);

let expected = [
    Chunk::new(bgzf::VirtualPosition::from(2), bgzf::VirtualPosition::from(3)),
    Chunk::new(bgzf::VirtualPosition::from(5), bgzf::VirtualPosition::from(13)),
    Chunk::new(bgzf::VirtualPosition::from(21), bgzf::VirtualPosition::from(34)),
];

assert_eq!(actual, expected);