Commit d6010191 authored by Vladimir Malenovsky's avatar Vladimir Malenovsky
Browse files

simplification of MAX ENC DIFF regexp + minor corrections

parent 53becf4b
Loading
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ def str2num(s):


def cmp_stats_files(
    ref_stats_file, dut_stats_file, min_enc_file_length_diff=0.1, min_enc_stats_diff=0.1
    ref_stats_file, dut_stats_file, max_enc_file_length_diff, max_enc_stats_diff
) -> (int, str):
    """
    Compare two .stats files containing encoder statistics (extracted from binary files)
@@ -60,7 +60,7 @@ def cmp_stats_files(
                if (
                    abs(ref_stats_dict["length"] - dut_stats_dict["length"])
                    / file_length
                    > min_enc_file_length_diff
                    > max_enc_file_length_diff
                ):
                    result_len_check = 1

@@ -98,7 +98,7 @@ def cmp_stats_files(
            )

            msg += f"the total number of differences is {total_num_diff} ({(total_num_diff_ratio*100):.2f}%)"
            if total_num_diff_ratio > min_enc_stats_diff:
            if total_num_diff_ratio > max_enc_stats_diff:
                result_diff_check = 1
                msg += "! "
            else:
@@ -119,7 +119,7 @@ def cmp_stats_files(
            print(msg)

    if enc_test_result and max_total_num_diff > 0:
        msg = f"MAXIMUM ENC DIFF: {max_total_num_diff} ({(max_total_num_diff_ratio*100):.2f}%) MAX_ENC_DIFF_NAME: '{max_diff_name}'"
        msg = f"MAXIMUM ENC DIFF: {max_diff_name} {max_total_num_diff} ({(max_total_num_diff_ratio*100):.2f}%)"
        enc_test_result_msg += msg
        print(msg)

@@ -132,13 +132,13 @@ if __name__ == "__main__":
    parser.add_argument("ref_stats_file", type=str)
    parser.add_argument("dut_stats_file", type=str)
    parser.add_argument(
        "--min_enc_file_length_diff",
        "--max_enc_file_length_diff",
        type=float,
        default=0.1,
        dest="min_enc_file_length_diff",
        dest="max_enc_file_length_diff",
    )
    parser.add_argument(
        "--min_enc_stats_diff", type=float, default=0.1, dest="min_enc_stats_diff"
        "--max_enc_stats_diff", type=float, default=0.1, dest="max_enc_stats_diff"
    )
    args = parser.parse_args()

+4 −4
Original line number Diff line number Diff line
@@ -47,8 +47,8 @@ from tests.cmp_stats_files import cmp_stats_files
from tests.conftest import DecoderFrontend, EncoderFrontend, parse_properties
from tests.testconfig import PARAM_FILE
from tests.constants import (
    MIN_ENC_FILE_LENGTH_DIFF,
    MIN_ENC_STATS_DIFF,
    MAX_ENC_FILE_LENGTH_DIFF,
    MAX_ENC_STATS_DIFF,
    SCRIPTS_DIR,
    MAX_ENC_DIFF,
)
@@ -251,8 +251,8 @@ def test_param_file_tests(
            enc_test_result, enc_test_result_msg = cmp_stats_files(
                ref_stats_file,
                dut_stats_file,
                min_enc_file_length_diff=MIN_ENC_FILE_LENGTH_DIFF,
                min_enc_stats_diff=MIN_ENC_STATS_DIFF,
                max_enc_file_length_diff=MAX_ENC_FILE_LENGTH_DIFF,
                max_enc_stats_diff=MAX_ENC_STATS_DIFF,
            )

            print("")
+3 −3
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ from tests.cmp_pcm import cmp_pcm
from tests.conftest import DecoderFrontend, EncoderFrontend
from ..conftest import parse_properties
from ..cmp_stats_files import cmp_stats_files
from ..constants import TESTV_DIR, MIN_ENC_FILE_LENGTH_DIFF, MIN_ENC_STATS_DIFF
from ..constants import TESTV_DIR, MAX_ENC_FILE_LENGTH_DIFF, MAX_ENC_STATS_DIFF
from tests.testconfig import use_ltv


@@ -309,8 +309,8 @@ def test_sba_enc_system(
            enc_test_result, enc_test_result_msg = cmp_stats_files(
                ref_stats_file,
                dut_stats_file,
                min_enc_file_length_diff=MIN_ENC_FILE_LENGTH_DIFF,
                min_enc_stats_diff=MIN_ENC_STATS_DIFF,
                max_enc_file_length_diff=MAX_ENC_FILE_LENGTH_DIFF,
                max_enc_stats_diff=MAX_ENC_STATS_DIFF,
            )

            print("")
+5 −11
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@ import tempfile
from typing import Optional, Union
import numpy as np
from .constants import (
    MAX_ENC_DIFF_NAME_PATTERN,
    # MAX_ENC_DIFF_NAME_PATTERN,
    MAX_ENC_DIFF_PARAM_NAME,
    MLD_PATTERN,
    MAX_DIFF_PATTERN,
@@ -1115,17 +1115,11 @@ def parse_properties(text_to_parse: str, output_differs: bool, props_to_record:
        elif prop == MAX_ENC_DIFF:
            search_result = re.search(MAX_ENC_DIFF_PATTERN, text_to_parse)
            max_enc_diff_ratio = 0.0
            name_result = ""
            max_enc_diff_param_name = ""
            if search_result:
                _, max_enc_diff_ratio = search_result.groups(0)
                if max_enc_diff_ratio:
                    max_enc_diff_ratio = float(max_enc_diff_ratio)

                name_result = re.search(
                    MAX_ENC_DIFF_NAME_PATTERN, text_to_parse
                ).groups(0)[0]
            props[MAX_ENC_DIFF] = max_enc_diff_ratio
            props[MAX_ENC_DIFF_PARAM_NAME] = name_result
                max_enc_diff_param_name, _, max_enc_diff_ratio = search_result.groups(0)
            props[MAX_ENC_DIFF] = float(max_enc_diff_ratio)
            props[MAX_ENC_DIFF_PARAM_NAME] = max_enc_diff_param_name
    return props


+5 −7
Original line number Diff line number Diff line
@@ -23,18 +23,16 @@ MAX_DIFF_PATTERN = r"MAXIMUM ABS DIFF: (\d*)"
ODG_PATTERN_PQEVALAUDIO = r"Objective Difference Grade: (-*\d*\.\d*)"
ODG_PATTERN = r"ODG: (-*\d*\.\d*)"
SSNR_PATTERN = r"Channel \d* SSNR: (nan|[+-]*inf|[-*\d\.]*)"
MAX_ENC_DIFF_PATTERN = r"MAXIMUM ENC DIFF: (\d+) \((\d+\.\d+)%\)"
MAX_ENC_DIFF_NAME_PATTERN = r"MAX_ENC_DIFF_NAME: '(.*)'"
MAX_ENC_DIFF_PATTERN = r"MAXIMUM ENC DIFF: ([^ ]*) (\d+) \((\d+\.\d+)%\)"
ENC_CORE_OVL_PATTERN = r"Core input overload detected: (\d+)"
MAX_OVL_PATTERN = r"Max overload value: (\d+\.\d+)"
MIN_OVL_PATTERN = r"Min overload value: (-*\d+\.\d+)"

# maximum "relative" tolerable difference between ref and dut encoder file lengths
MAX_ENC_FILE_LENGTH_DIFF = 0.1

# minimum difference between ref and dut encoder file lengths
MIN_ENC_FILE_LENGTH_DIFF = 0.1
# minimum difference between the statistics of ref and dut encoder files
MIN_ENC_STATS_DIFF = 0.1

# maximum "relative" tolerable difference between the statistics of ref and dut encoder files
MAX_ENC_STATS_DIFF = 0.5

# list of encoder filename patterns with their data type and number of samples per frame
# note: instead of specifying the number of samples per frame, you can use a formula incl. 'fs', e.g. 'fs/50'