Commit e9bb84c3 authored by Jan Kiene's avatar Jan Kiene
Browse files

add split comp for test_sba testcases

also fix running without --split_comparison
parent 40ec8adf
Loading
Loading
Loading
Loading
Loading
+34 −7
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ __doc__ = """

import os
import pytest
import numpy as np
from cut_bs import cut_from_start
from pathlib import Path

@@ -44,6 +45,7 @@ from tests.conftest import (
    EncoderFrontend,
    compare_dmx_signals,
    parse_properties,
    get_split_idx,
)
from ..cmp_stats_files import cmp_stats_files
from ..constants import TESTV_DIR, MAX_ENC_FILE_LENGTH_DIFF, MAX_ENC_STATS_DIFF
@@ -116,6 +118,7 @@ def test_pca_enc(
    get_enc_stats,
    compare_to_input,
    compare_enc_dmx,
    split_comparison,
):
    pca = True
    bitrate = "256000"
@@ -198,6 +201,7 @@ def test_pca_enc(
            get_odg=get_odg,
            get_odg_bin=get_odg_bin,
            compare_to_input=compare_to_input,
            split_comparison=split_comparison,
        )


@@ -237,6 +241,7 @@ def test_sba_enc_system(
    get_enc_stats,
    compare_to_input,
    compare_enc_dmx,
    split_comparison,
):
    plc_pattern = None
    pca = False
@@ -377,6 +382,7 @@ def test_sba_enc_system(
            get_odg=get_odg,
            get_odg_bin=get_odg_bin,
            compare_to_input=compare_to_input,
            split_comparison=split_comparison,
        )


@@ -408,6 +414,7 @@ def test_spar_hoa2_enc_system(
    get_enc_stats,
    compare_to_input,
    compare_enc_dmx,
    split_comparison,
):
    sampling_rate = "48"
    pca = False
@@ -523,6 +530,7 @@ def test_spar_hoa2_enc_system(
            get_odg=get_odg,
            get_odg_bin=get_odg_bin,
            compare_to_input=compare_to_input,
            split_comparison=split_comparison,
        )


@@ -554,6 +562,7 @@ def test_spar_hoa3_enc_system(
    get_enc_stats,
    compare_to_input,
    compare_enc_dmx,
    split_comparison,
):
    sampling_rate = "48"
    pca = False
@@ -663,6 +672,7 @@ def test_spar_hoa3_enc_system(
            get_odg=get_odg,
            get_odg_bin=get_odg_bin,
            compare_to_input=compare_to_input,
            split_comparison=split_comparison,
        )


@@ -698,6 +708,7 @@ def test_sba_enc_BWforce_system(
    get_enc_stats,
    compare_to_input,
    compare_enc_dmx,
    split_comparison,
):
    sid = 0
    plc_pattern = None
@@ -823,6 +834,7 @@ def test_sba_enc_BWforce_system(
            get_odg=get_odg,
            get_odg_bin=get_odg_bin,
            compare_to_input=compare_to_input,
            split_comparison=split_comparison,
        )


@@ -862,6 +874,7 @@ def test_sba_plc_system(
    get_enc_stats,
    compare_to_input,
    compare_enc_dmx,
    split_comparison,
):
    sid = 0
    pca = False
@@ -964,6 +977,7 @@ def test_sba_plc_system(
            get_odg=get_odg,
            get_odg_bin=get_odg_bin,
            compare_to_input=compare_to_input,
            split_comparison=split_comparison,
        )


@@ -1140,6 +1154,7 @@ def sba_dec(
    get_odg=False,
    get_odg_bin=False,
    compare_to_input=False,
    split_comparison=False,
):
    dut_pkt_dir = f"{dut_base_path}/sba_bs/pkt"
    ref_pkt_dir = f"{reference_path}/sba_bs/pkt"
@@ -1251,7 +1266,13 @@ def sba_dec(
            allow_differing_lengths = True

        sampling_rate_Hz = int(sampling_rate) * 1000
        cmp_result, reason = cmp_pcm(

        split_idx = np.empty(0)
        if split_comparison:
            input_file = f"{test_vector_path}/{tag}.wav"
            split_idx = get_split_idx(str(Path(input_file).stem), int(sampling_rate))

        output_differs_parts, reason_parts = cmp_pcm(
            dut_out_file,
            ref_out_file,
            output_config,
@@ -1267,13 +1288,19 @@ def sba_dec(
            odg_test=odg_test,
            odg_ref=odg_ref,
            scalefac=test_info.config.option.scalefac,
            split_idx=split_idx,
        )

        text_to_parse = reason
        props = parse_properties(text_to_parse, cmp_result != 0, props_to_record)
        prop_suffix = [""]
        if len(split_idx) > 0:
            prop_suffix = [f"_split{i}" for i in range(1, len(split_idx) + 1)]
        for output_differs, reason, suffix in zip(
            output_differs_parts, reason_parts, prop_suffix
        ):
            props = parse_properties(reason, output_differs, props_to_record, suffix)
            for k, v in props.items():
                dut_decoder_frontend.record_property(k, v)

        # report compare result
        if cmp_result != 0:
            pytest.fail(text_to_parse)
        if output_differs_parts[0] != 0:
            pytest.fail(reason_parts[0])