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

refactor prop recording a bit

parent b6fc5dd5
Loading
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ from typing import Optional
import pytest

from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend, EncoderFrontend, record_properties
from tests.conftest import DecoderFrontend, EncoderFrontend, parse_properties

# 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']
@@ -222,7 +222,9 @@ def test_masa_enc_dec(
            get_ssnr=get_ssnr
        )

        record_properties(text_to_parse=reason, output_differs=pcmcmp_res != 0, record_property=record_property, props_to_record=props_to_record)
        props = parse_properties(reason, pcmcmp_res != 0, props_to_record)
        for k, v in props.items():
            record_property(k, v)

        if get_mld and get_mld_lim > 0:
            if pcmcmp_res != 0:
+4 −2
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ import pytest
import numpy as np

from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend, EncoderFrontend, record_properties
from tests.conftest import DecoderFrontend, EncoderFrontend, parse_properties
from tests.testconfig import PARAM_FILE


@@ -354,7 +354,9 @@ def test_param_file_tests(
        )
        md_out_files = get_expected_md_files(ref_output_file, enc_split, output_config)

        record_properties(text_to_parse=reason, output_differs=output_differs, record_property=record_property, props_to_record=props_to_record)
        props = parse_properties(reason, output_differs, props_to_record)
        for k, v in props.items():
            record_property(k, v)

        metadata_differs = False
        for md_file in md_out_files:
+4 −2
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ import pytest

from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend
from ..conftest import record_properties
from ..conftest import parse_properties

# params
tag_list = ["stvFOA"]
@@ -221,7 +221,9 @@ def sba_dec_plc(
            get_ssnr=get_ssnr,
        )

        record_properties(text_to_parse=reason, output_differs=cmp_result!=0, record_property=record_property, props_to_record=props_to_record)
        props = parse_properties(reason, cmp_result!=0, props_to_record)
        for k, v in props.items():
            record_property(k, v)

        # report compare result
        if cmp_result != 0:
+4 −2
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ from cut_bs import cut_from_start

from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend, EncoderFrontend
from ..conftest import record_properties
from ..conftest import parse_properties

# params

@@ -753,7 +753,9 @@ def sba_dec(
            get_ssnr=get_ssnr,
        )

        record_properties(text_to_parse=reason, output_differs=cmp_result!=0, record_property=record_property, props_to_record=props_to_record)
        props = parse_properties(reason, cmp_result!=0, props_to_record)
        for k, v in props.items():
            record_property(k, v)

        # report compare result
        if cmp_result != 0:
+10 −6
Original line number Diff line number Diff line
@@ -779,15 +779,17 @@ def props_to_record(request, get_mld, get_ssnr) -> str:
    return props


def record_properties(text_to_parse: str, output_differs: bool, record_property, props_to_record: list):
def parse_properties(text_to_parse: str, output_differs: bool, props_to_record: list):
    """
    Record the given properties in the report by parsing their values from the text.
    """

    props = dict()

    for prop in props_to_record:
        if prop == "MLD":
            mld = re.search(MLD_PATTERN, text_to_parse).groups(1)[0]
            record_property("MLD", mld)
            mld = float(re.search(MLD_PATTERN, text_to_parse).groups(1)[0])
            props[prop] = mld
        elif prop == "MAXIMUM ABS DIFF":
            max_diff = 0
            if output_differs:
@@ -795,13 +797,15 @@ def record_properties(text_to_parse: str, output_differs: bool, record_property,
                    max_diff = match.groups(1)[0]
                else:
                    raise MaxDiffPatternNotFound()
            record_property("MAXIMUM ABS DIFF", max_diff)
            props[prop] = max_diff
        elif prop == "SSNR":
            ssnrs = re.findall(SSNR_PATTERN, text_to_parse)
            min_ssnr = min(ssnrs)
            min_ssnr_channel = ssnrs.index(min_ssnr)
            record_property("MIN_SSNR", min_ssnr)
            record_property("MIN_SSNR_CHANNEL", min_ssnr_channel)
            props["MIN_SSNR"] = min_ssnr
            props["MIN_SSNR_CHANNEL"] = min_ssnr_channel

    return props


class MaxDiffPatternNotFound(Exception):