/// <summary> /// Crea una entrada, amb una arrel, un paradigma i informació extra. /// La informació extra es pot referir a excepcions, origen de la paraula, etc. /// Per defecte, les entrades tenen la marca '000'. /// </summary> /// <param name="identificador">L'objecte que identifica el paradigma al qual pertany l'entrada.</param> /// <param name="dades">Informació sobre l'entrada</param> public Entrada(Identificador identificador, Dictionary<string, string> dades) { this.dades = dades; this.excepcions = null; this.identificador = identificador; marques = null; }
private void testParaules(RTest resultat, Identificador idPar, Marques filtre, params string[] paraules) { List<Entrada> entrades = new List<Entrada>(); List<string> notes = new List<string>(); foreach (string paraula in paraules) { string infoParaula = paraula; string[] esperat = null; int posFletxa = paraula.IndexOf(" > "); if (posFletxa >= 0) { infoParaula = paraula.Substring(0, posFletxa); esperat = paraula.Substring(posFletxa + 3).Split(' '); } Entrada entrada = idPar.IdentificaEntrada(infoParaula); entrades.Add(entrada); string llista = Mot.LlistaPlana(entrada.GeneraMots(filtre, false), Cat.Cmp, true); bool ok = true; if (esperat != null) foreach (string esp in esperat) if (!(llista + " ").Contains(esp + " ")) { notes.Add(string.Format("No s'ha generat {0} ({1})", esp, entrada.Arrel)); ok = false; } resultat.Nota("{0}: {1}", entrada.Ent, ok ? "OK" : "ERROR"); } if (notes.Count > 0) { resultat.Assert(false, "Hi ha {0} error{1}", notes.Count, notes.Count == 1 ? "" : "s"); foreach (string nota in notes) resultat.Nota(nota); } }
/// <summary> /// Llegeix entrades d'un fitxer, les identifica amb idPar i les afegeix a la llista. /// </summary> /// <param name="nomFitxer">El nom del fitxer amb les entrades. Hi ha una entrada per línia. /// S'ignoren les línies en blanc i les que comencen per "//".</param> /// <param name="identificador">Identificador de paradigmes. Es crida per a cada línia que pot contenir /// una entrada. Si idPar torna una Entrada, s'afegeix a la llista. Si torna null, no es /// fa res.</param> /// <param name="llista">La llista a la qual s'afegeixen les entrades que es troben.</param> /// <returns>El nombre d'entrades llegides del fitxer.</returns> public static int LlegeixEntrades(string nomFitxer, Identificador identificador, ref List<Entrada> llista) { int llegides = 0; return llegides; }
private void testParaules(RTest resultat, Identificador idPar, params string[] paraules) { testParaules(resultat, idPar, Marques.totes, paraules); }