//! Instances for documentation tests or tests.
use crate::;
use crate::;
/// As odd as it may seem, this illustration is just a guide to get a grasp of
/// a 5D structure.
///
/// ```rust
/// // ___ ___ ___ ___ ___ ___ ___ ___ ___
/// // / / / /\ / 3 / / /\ / / / /\
/// // /___/___/___/ /\ /_3_/___/___/ /\ /___/___/___/ /\
/// // / / / /\/ /\ / / / /\/ /\ / / 4 / /\/ /\
/// // /___/___/___/ /\/ / /___/___/___/ /\/ / /___/_4_/___/ /\/ /
/// // / / / /\/ /\/ / / / /\/ /\/ / / / /\/ /\/
/// // /___/___/___/ /\/ / /___/___/___/ /\/ / /___/___/___/ /\/ /
/// // / / / /\/1/\/ / / / /\/ /\/ / / / /\/ /\/
/// // /___/___/___/ /\/ / /___/___/___/ /\/ / /___/___/___/ /\/ /
/// // \___\___\___\/ /\/ \___\___\___\/ /\/ \___\___\___\/ /\/
/// // \___\___\___\/ / \___\_2_\___\/ / \___\___\___\/ /
/// // \___\___\___\/ \___\___\___\/ \___\___\___\/
/// //
/// // ___ ___ ___ ___ ___ ___ ___ ___ ___
/// // / / / /\ / / / /\ / / / 6 /\
/// // /___/___/___/ /\ /___/___/___/ /\ /___/___/_6_/6/\
/// // / / / /\/ /\ / / / /\/ /\ / / / /\/ /\
/// // /___/___/___/ /\/ / /___/___/___/ /\/ / /___/___/___/ /\/7/
/// // / / / /\/ /\/ / / / /\/ /\/ / / / /\/ /\/
/// // /___/___/___/ /\/ / /___/___/___/ /\/ / /___/___/___/ /\/ /
/// // / / / /\/ /\/ / / / /\/ /\/ / / / /\/ /\/
/// // /___/___/___/ /\/ / /___/___/___/ /\/ / /___/___/___/ /\/ /
/// // \___\___\___\/ /\/ \___\___\___\/ /\/ \___\___\___\/ /\/
/// // \___\___\___\/ / \___\___\___\/ / \___\___\___\/ /
/// // \___\___\___\/ \___\_5_\___\/ \___\___\___\/
/// use ndstruct::coo::CooArray;
/// let _ = CooArray::new(
/// [2, 3, 4, 3, 3],
/// [
/// ([0, 0, 1, 1, 2], 1),
/// ([0, 1, 0, 1, 1], 2),
/// ([0, 1, 3, 0, 0], 3),
/// ([0, 2, 2, 0, 1], 4),
/// ([1, 1, 0, 2, 1], 5),
/// ([1, 2, 3, 0, 2], 6),
/// ([1, 2, 3, 2, 2], 7),
/// ],
/// );
/// ```
/// [`Vec`](alloc::vec::Vec) version of [`coo_array_5`].
/// Two cuboids illustrating a [2, 3, 4, 5] 4D in a [w, y, z, x] order, i.e., each "line"
/// or 1D representation is a left to right row and each "matrix" or 2D representation
/// is filled in a top-down manner.
///
/// ```rust
/// // w: left to right
/// // y: top to bottom
/// // z: front to back
/// // x: left to right
/// //
/// // ___ ___ ___ ___ ___ ___ ___ ___ ___ ___
/// // / / / / 4 / 5 /\ / / / / / /\
/// // /___/___/___/_4_/_5_/5/\ /___/___/___/___/___/ /\
/// // / / / / / /\/ /\ / / / 9 / / /\/ /\
/// // /___/___/___/___/___/ /\/ / /___/___/_9_/___/___/ /\/ /
/// // / / 3 / / / /\/ /\/ / / / / / /\/ /\/
/// // /___/_3_/___/___/___/ /\/ / /___/_ _/___/___/___/ /\/ /
/// // / 1 / / / 2 / /\/ /\/ / / / / / /\/ /\/
/// // /_1_/___/___/_2_/___/ /\/8/ /___/___/___/___/___/ /\/ /
/// // \_1_\___\___\_2_\___\/ /\/ \___\___\___\___\___\/ /\/
/// // \___\___\_6_\___\___\/ / \___\___\___\___\___\/ /
/// // \___\___\_7_\___\___\/ \___\___\___\___\___\/
/// use ndstruct::csl::CslArray;
/// let _ = CslArray::new(
/// [2, 3, 4, 5],
/// [1, 2, 3, 4, 5, 6, 7, 8, 9],
/// [0, 3, 1, 3, 4, 2, 2, 4, 2],
/// [0, 2, 3, 3, 5, 6, 6, 6, 6, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9],
/// );
/// ```
/// [`Vec`](alloc::vec::Vec) version of [`csl_array_4`].
/// A dense cube, i.e., a fully filled cube.
///
/// ```rust
/// // ___ ___ ___
/// // / 28/ 29/ 30/\
/// // /___/___/___/0/\
/// // / 19/ 20/ 21/\/3/\
/// // /___/___/___/1/\/6/
/// // / 10/ 11/ 12/\/4/\/
/// // /___/___/___/2/\/7/
/// // / 1 / 2 / 3 /\/5/\/
/// // /___/___/___/3/\/8/
/// // \_1_\_2_\_3_\/6/\/
/// // \_4_\_5_\_6_\/9/
/// // \_7_\_8_\_9_\/
/// use ndstruct::dense::DenseArray;
/// let _ = DenseArray::new(
/// [4, 3, 3],
/// [
/// 1, 2, 3, 4, 5, 6, 7, 8, 9,
/// 10, 11, 12, 13, 14, 15, 16, 17, 18,
/// 19, 20, 21, 22, 23, 24, 25, 26, 27,
/// 28, 29, 30, 31, 32, 33, 34, 35, 36,
/// ]
/// );
/// ```