mediaway-decoder 0.1.8

Hardware-accelerated video/audio decoding (OS-native backends)
#![cfg(test)]
#![allow(
    clippy::unwrap_used,
    clippy::expect_used,
    reason = "test module may unwrap"
)]
#![allow(
    clippy::float_cmp,
    reason = "timestamps/samples round-trip exact f64/f32 literals through a plain getter, no arithmetic"
)]

use super::*;

#[test]
fn chunk_count_matches_input_length() {
    let data = DecodedAudioData::new(
        vec![0.0, 20_000.0],
        vec![960, 960],
        vec![2, 2],
        vec![vec![0.0; 1920], vec![0.0; 1920]],
    );
    assert_eq!(data.chunk_count(), 2);
}

#[test]
fn fields_read_back_by_index() {
    let data = DecodedAudioData::new(
        vec![0.0, 20_000.0],
        vec![480, 960],
        vec![1, 2],
        vec![vec![0.5, -0.5], vec![0.25, 0.25, -0.25, -0.25]],
    );
    assert_eq!(data.timestamp_us(0), 0.0);
    assert_eq!(data.timestamp_us(1), 20_000.0);
    assert_eq!(data.sample_count(0), 480);
    assert_eq!(data.sample_count(1), 960);
    assert_eq!(data.channel_count(0), 1);
    assert_eq!(data.channel_count(1), 2);
    assert_eq!(data.samples(0), vec![0.5, -0.5]);
    assert_eq!(data.samples(1), vec![0.25, 0.25, -0.25, -0.25]);
}

#[test]
fn empty_data_has_zero_count() {
    let data = DecodedAudioData::new(Vec::new(), Vec::new(), Vec::new(), Vec::new());
    assert_eq!(data.chunk_count(), 0);
}