diff efr-sid/Unit-test-desc @ 53:637ee027999b

efr-sid/Unit-test-desc: blurb written
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 12 Aug 2024 03:39:42 +0000
parents
children 0832b5ac62b2
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/efr-sid/Unit-test-desc	Mon Aug 12 03:39:42 2024 +0000
@@ -0,0 +1,41 @@
+Unit test for EFR SID detector: test data
+=========================================
+
+The test sequence generated here consists of 175 frames in total:
+
+1 perfect (error-free) SID frame: should classify as SID=2
+95 frames with 1 bit in the SID field cleared: should classify as SID=2
+48 frames with 2 bits in the SID field cleared: should classify as SID=1
+11 frames with 15 bits in the SID field cleared: should classify as SID=1
+20 frames with 16 bits in the SID field cleared: should classify as SID=0
+
+(The error-free SID frame used as the starting point is frame #71 from
+ dtx01.cod in the official test sequence set from ETSI.)
+
+The goal is to ensure perfect agreement among the following parties:
+
+* The program used to generate these test frames;
+* EFR_sid_classify() function in Themyscira libgsmefr;
+* osmo_efr_sid_classify() function in libosmocodec (part of libosmocore);
+* SID classification performed by TI Calypso DSP;
+* SID classification performed by Nokia InSite BTS (E1 Abis output).
+
+The official reference (source of truth) is GSM 06.62 spec for the definition
+of SID field bits and GSM 06.81 spec for SID classification thresholds; all
+implementations listed above are supposed to follow these spec definitions.
+However, any time a human developer has to read a spec and write code based on
+that spec, errors can occur at any step in that process; a cross-check between
+our implementation and those made by others before us will provide an important
+assurance of correctness.
+
+The test frames generated here have been chosen with the goal of maximizing
+the chance of catching errors in these two areas:
+
+* Wrong bits being set by tools aiming to generate or corrupt the SID field,
+  or wrong bits being checked by the SID detector;
+* Wrong thresholds being applied for SID classification.
+
+The generator program in this directory and Themyscira libgsmefr are already
+in agreement; once we test on TI Calypso DSP and on Nokia InSite, we will have
+full confidence in the correctness of our implementation.  The same test data
+will then be added to libosmocore as a regression test.