Risolve i membri family table senza ConfigName e la scritta troncata in "Componenti referenziati"
Alcuni membri di family table non-UNI portano la notazione "<istanza><generico>" direttamente nel campo name/family_name di members, senza un ConfigName associato: AsmRecordReader cercava quella stringa intera (parentesi comprese) nell'indice e non la trovava mai. Ora separa istanza e generico. Corretta anche l'etichetta di PrtMancantiForm, che usciva dal bordo della finestra invece di andare a capo. Documentato il nuovo meccanismo in docs/formato-asm-record.md, e aggiunta una nota sul segnale di rilevamento family table di assiemi: validato su un caso reale ma non affidabile al 100% su scala (trovato un falso positivo).
This commit is contained in:
1 parent
9af426ca1b
commit
cf4c2e8e29
4 files changed
+106
-4
No files matched your search
@@ -87,6 +87,23 @@ public class AsmRecordReaderTests
|
||||
Assert.All(membri, m => Assert.Equal("9244250136_C03", m.Nome));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Membro_con_notazione_istanza_generico_diretta_nel_nome_usa_il_generico()
|
||||
{
|
||||
// Regressione: 9244248577a_c01.asm - alcuni membri di family table non-UNI non
|
||||
// passano da ConfigName, il campo "name"/"family_name" del record members porta gia'
|
||||
// la forma "<istanza><generico>" (stessa notazione di §4.1). Senza lo split, il codice
|
||||
// cercato nell'indice sarebbe "V6-12--_-_U5931_GC<UNI5931>" per intero, mai trovato -
|
||||
// va cercato invece il generico "UNI5931".
|
||||
byte[] dati = Asm(1, Membro(1, 2, "V6-12--_-_U5931_GC<UNI5931>"));
|
||||
|
||||
var membri = AsmRecordReader.LeggiMembri(dati);
|
||||
|
||||
Assert.Single(membri);
|
||||
Assert.Equal("V6-12--_-_U5931_GC", membri[0].Nome);
|
||||
Assert.Equal("UNI5931", membri[0].Generico);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Componente_senza_ConfigName_non_e_toccato_da_istanze_di_altri_membri()
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user