<summary>Example Output of CUT execution</summary>
<pre><code>
```console
Accumulating commands from Readme_IVAS_dec.txt
Accumulating commands from Readme_IVAS_rend.txt
Accumulating commands from Readme_IVAS_enc.txt
Accumulating commands from Readme_IVAS_ISAR_post_rend.txt
Accumulating commands from Readme_IVAS_ISAR_dec.txt
Accumulating commands from Readme_IVAS_JBM_dec.txt
No of tests :
ENC : 381
DEC : 637
REND : 666
ISAR_ENC : 1032
ISAR : 1032
Executing tests for ENC (381 tests)
Executing tests for DEC (637 tests)
Executing tests for REND (666 tests)
Executing tests for ISAR_ENC (1032 tests)
Executing tests for ISAR (1032 tests)
</code></pre>
Executing tests for ENC (381 tests):
---------------------------
[ENC] OK
...
Summary of results:
---------------------
[ENC] OK
[DEC] OK
[REND] OK
[ISAR_ENC] OK
[ISAR] OK
```
</details>
This should generate outputs in scripts/CUT_OUTPUTS folder which looks like below:-
@@ -106,7 +118,7 @@ If CUT test execution is done on a different platform, the scripts/CUT_OUTPUTS m
### Perform the BE comparison on the CUT outputs on reference platform
The BE comparison is performed to the CUT outputs using the command below. Encoded outputs will be decoded using the reference decoder executables as part of the process. The BE comparison is then performed between the CUT and reference decoded outputs. This includes comparison of ".wav"-files, and ".csv" and ".met" metadata files. If any non-BE results are observed, this is reported on the command-line and link to an analysis ".csv" file is given. The analysis file shows which exact files were non-BE. An example passing output is shown below. If all test sets print `PASSED BE TEST`, then CUT outputs are BE-conformant.
The BE comparison is performed to the CUT outputs using the command below. Encoded outputs are decoded using the reference decoder executables as part of the process. The BE comparison is then performed between the CUT and reference decoded outputs. This includes comparison of `.wav`files and `.csv`/`.met` metadata files. If non-BE results are observed, this is reported on the commandline and in the generated analysis CSV output.
MLD Corridor passed for ISAR with max MLD diff of 0.0
</code></pre>
</details>
## Executing specific tests only
All CUT tests can be run specifically for IVAS Encoder,IVAS Decoder,IVAS Renderer, ISAR Encoder and ISAR Decoder only. The commandline allows for ```-test-mode=<PARAM>``` for this functionality, examples:
- Run CUT IVAS Encoder Tests Only (on Target Platform)
-`MC` expands to `5_1`, `7_1`, `5_1_4`, `5_1_2`, `7_1_4`.
- Any other token is treated as a case-insensitive substring match.
- Token modifiers:
-`TOKEN`: restrictive token. Multiple restrictive tokens combine with logical AND.
-`+TOKEN`: additive token. Adds matching tests even if they would otherwise be excluded.
-`-TOKEN`: subtractive token. Removes matching tests from the final selection.
-`TOKEN*`: wildcard token. Matches all known tokens starting with the given prefix.
-`+TOKEN*`, `-TOKEN*`: wildcard token with add/remove behavior.
### LEVEL1, LEVEL2 and LEVEL3 behavior
For all levels, the default test-group baseline is `ENC` + `DEC`.
`REND`, `ISAR`, and `ISAR_ENC` are optional and are only included if explicitly selected as plain test-group tokens or added via `+REND`, `+ISAR` and `+ISAR_ENC`.
When `--filter LEVEL1` is specified, the following default tests are run:
- Encoder (`ENC`) tests: only tests with bitrate up to 80 kbps (inclusive).
- Decoder (`DEC`) tests:
-`EXT` output format: only bitrate up to 80 kbps (inclusive).
-`MONO` output format: all bitrates.
-`STEREO` output format: all bitrates.
- The default `LEVEL1` tests may be restricted by adding more tokens (acting as logical AND).
- Example: `--filter LEVEL1 DEC MONO` keeps only `MONO` tests from the LEVEL1-eligible DEC set.
- Example: `--filter LEVEL1 JBM` keeps all LEVEL1-eligible ENC tests but only JBM tests from the LEVEL1-eligible DEC tests.
-`+TOKEN` adds tests to the final LEVEL1 selection, even if they would otherwise be restricted.
- Example: `--filter LEVEL1 DEC JBM +BINAURAL*` runs JBM-matching LEVEL1 DEC tests and additionally includes DEC tests with `BINAURAL` output formats, i.e. `BINAURAL`, `BINAURAL_IR`, `BINAURAL_ROOM_IR`, `BINAURAL_REVERB`.
-`-TOKEN` removes matching tests from the final LEVEL1 selection (including tests added via `+TOKEN`).
- Example: `--filter LEVEL1 DEC +JBM -VOIP` adds JBM-matching tests to LEVEL1 DEC tests and excludes DEC `VOIP` tests.
- Renderer and ISAR tests are not run by default in `LEVEL1`.
- Add `+REND`, `+ISAR`, and/or `+ISAR_ENC` in `--filter` to include them.
- Use `+ISAR*` if you want wildcard expansion across all `ISAR*`-prefixed test-group tokens.
When `--filter LEVEL2` is specified, all selection rules above remain the same,
except the bitrate cap is set to 192 kbps:
- Encoder (`ENC`) tests: only tests with bitrate up to 192 kbps (inclusive).
- Decoder (`DEC`) tests:
-`EXT` output format: only bitrate up to 192 kbps (inclusive).
-`MONO` output format: all bitrates.
-`STEREO` output format: all bitrates.
When `--filter LEVEL3` is specified, there are no restrictions on the bitrate or output formats.
Examples (non-BE):
- Default behavior (same as LEVEL3 baseline): run only ENC and DEC test groups
PYTHONPATH=scripts python scripts/ivas_conformance/runConformance.py --testvecDir$PWD/testvec --ref_build_path=testvec/bin --analyse--filter LEVEL1 DEC voip
```
-Analyse NON-BE conformance for CUT ISAR Encoder Outputs Only (on Reference Platform)