Commit 50e695f1 authored by Jan Kiene's avatar Jan Kiene
Browse files

record maximum absolute diff as property in XML report

parent cf494821
Loading
Loading
Loading
Loading
Loading
+15 −6
Original line number Diff line number Diff line
@@ -49,21 +49,30 @@ def cmp_pcm(file1, file2, out_config, fs, get_mld=False, mld_lim=0) -> (int, str
        s1, s2, fs, per_frame=False, get_mld=get_mld
    )

    if cmp_result["bitexact"]:
        return 0, "SUCCESS: Files are bitexact"
    else:
    output_differs = 0
    reason = "SUCCESS: Files are bitexact"

    if not cmp_result["bitexact"]:
        diff_msg = f"MAXIMUM ABS DIFF ==> {cmp_result['max_abs_diff']} at sample num {cmp_result['max_abs_diff_pos_sample']} (assuming {nchannels} channels)"
        first_msg = f"First diff found at sample num {cmp_result['first_diff_pos_sample']} in channel {cmp_result['first_diff_pos_channel']}, frame {cmp_result['first_diff_pos_frame']} (assuming {nchannels} channels, {fs} sampling rate)"
        print(diff_msg)
        print(first_msg)

        reason = f"Non-BE - MAXIMUM ABS DIFF: {cmp_result['max_abs_diff']}"
        output_differs = 1

        if get_mld:
            mld_msg = f"MLD: {cmp_result['MLD']}"
            reason += " - " + mld_msg
            print(mld_msg)

            if cmp_result["MLD"] <= mld_lim:
                return 0, f"MLD: {cmp_result['MLD']} <= {mld_lim}"
                output_differs = 0
                reason += f" <= {mld_lim}"
            else:
                return 1, f"MLD: {cmp_result['MLD']} > {mld_lim}"
        return 1, "Non-BE"
                reason += f" > {mld_lim}"

    return output_differs, reason


if __name__ == "__main__":
+2 −0
Original line number Diff line number Diff line
MLD_PATTERN = r"MLD: ([\d\.]*)"
MAX_DIFF_PATTERN = r"MAXIMUM ABS DIFF: (\d*)"
+14 −6
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ __doc__ = """

import errno
import os
import re
from filecmp import cmp
from typing import Optional

@@ -43,6 +44,8 @@ import pytest
from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend, EncoderFrontend

from . import MLD_PATTERN, MAX_DIFF_PATTERN

# params
# output_mode_list = ['MONO', 'STEREO', '5_1', '7_1', '5_1_2', '5_1_4', '7_1_4', 'FOA', 'HOA2', 'HOA3', 'BINAURAL', 'BINAURAL_ROOM', 'EXT']
output_mode_list = ["BINAURAL", "EXT"]
@@ -216,11 +219,13 @@ def test_masa_enc_dec(
                mld_lim=get_mld_lim,
            )
            if get_mld:
                mld = 0
                if "MLD" in reason:
                    mld = float(reason.split(":")[1].split()[0])
                mld = re.search(MLD_PATTERN, reason).groups(1)[0]
                record_property("MLD", mld)

            search_result = re.search(MAX_DIFF_PATTERN, reason)
            max_diff = search_result.groups(1)[0]
            record_property("MAXIMUM ABS DIFF", max_diff)

            if get_mld and get_mld_lim > 0:
                if pcmcmp_res != 0:
                    pytest.fail(reason)
@@ -248,10 +253,13 @@ def test_masa_enc_dec(
                    mld_lim=get_mld_lim,
                )
                if get_mld:
                    mld = 0
                    if "MLD" in reason:
                        mld = float(reason.split(":")[1].split()[0])
                    mld = re.search(MLD_PATTERN, reason).groups(1)[0]
                    record_property("MLD", mld)

                search_result = re.search(MAX_DIFF_PATTERN, reason)
                max_diff = search_result.groups(1)[0]
                record_property("MAXIMUM ABS DIFF", max_diff)

                # Report compare result
                if cmp_result != 0:
                    pytest.fail(reason)
+7 −3
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ Execute tests specified via a parameter file.
import errno
import filecmp
import os
import re
import platform
from pathlib import Path
from subprocess import run
@@ -45,6 +46,7 @@ from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend, EncoderFrontend
from tests.cut_pcm import cut_samples
from tests.testconfig import PARAM_FILE
from . import MLD_PATTERN, MAX_DIFF_PATTERN

VALID_DEC_OUTPUT_CONF = [
    "MONO",
@@ -342,11 +344,13 @@ def test_param_file_tests(
        md_out_files = get_expected_md_files(ref_output_file, enc_split, output_config)

        if get_mld:
            mld = 0
            if "MLD" in reason:
                mld = float(reason.split(":")[1].split()[0])
            mld = re.search(MLD_PATTERN, reason).groups(1)[0]
            record_property("MLD", mld)

        search_result = re.search(MAX_DIFF_PATTERN, reason)
        max_diff = search_result.groups(1)[0]
        record_property("MAXIMUM ABS DIFF", max_diff)

        metadata_differs = False
        for md_file in md_out_files:
            dut_metadata_file = Path(f"{dut_base_path}/param_file/dec/{md_file}")
+7 −3
Original line number Diff line number Diff line
@@ -34,11 +34,13 @@ __doc__ = """

import errno
import os
import re

import pytest

from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend
from . import MLD_PATTERN, MAX_DIFF_PATTERN

# params
tag_list = ["stvFOA"]
@@ -209,11 +211,13 @@ def sba_dec_plc(
            mld_lim=get_mld_lim,
        )
        if get_mld:
            mld = 0
            if "MLD" in reason:
                mld = float(reason.split(":")[1].split()[0])
            mld = re.search(MLD_PATTERN, reason).groups(1)[0]
            record_property("MLD", mld)

        search_result = re.search(MAX_DIFF_PATTERN, reason)
        max_diff = search_result.groups(1)[0]
        record_property("MAXIMUM ABS DIFF", max_diff)

        # report compare result
        if cmp_result != 0:
            pytest.fail(reason)
Loading