public void TestOutOfRange() { ColConfWin ccw = conf.colors[PhonConfType.phonemes]; Assert.ThrowsException <KeyNotFoundException>(() => ccw.GetCheck("farfelu")); Assert.ThrowsException <ArgumentNullException>(() => ccw.GetCheck(null)); Assert.ThrowsException <KeyNotFoundException>(() => ccw.GetCF("farfelu")); Assert.ThrowsException <ArgumentNullException>(() => ccw.GetCF(null)); Assert.ThrowsException <ArgumentOutOfRangeException>(() => ccw.SetCbxAndCF("farfelu", CharFormatting.BlackCF)); Assert.ThrowsException <ArgumentNullException>(() => ccw.SetCbxAndCF(null, CharFormatting.BlackCF)); Assert.ThrowsException <ArgumentNullException>(() => ccw.SetCbxAndCF("a", null)); Assert.ThrowsException <ArgumentOutOfRangeException>(() => ccw.ClearSon("farfelu")); Assert.ThrowsException <ArgumentNullException>(() => ccw.ClearSon(null)); Assert.ThrowsException <ArgumentOutOfRangeException>(() => ccw.SetCFSon("farfelu", CharFormatting.BlackCF)); Assert.ThrowsException <ArgumentNullException>(() => ccw.SetCFSon(null, CharFormatting.BlackCF)); Assert.ThrowsException <ArgumentNullException>(() => ccw.SetCFSon("a", null)); Assert.ThrowsException <ArgumentOutOfRangeException>(() => ccw.SetChkSon("farfelu", false)); Assert.ThrowsException <ArgumentNullException>(() => ccw.SetChkSon(null, true)); }
public void TestDefaultMuettes() { ColConfWin ccw = conf.colors[PhonConfType.muettes]; Assert.AreEqual(cfMUET, ccw.GetCF("_muet")); HashSet <string> sonsMuets = new HashSet <string>() { "_muet" }; HashSet <string> tousLesSons = new HashSet <string>(ColConfWin.sonsValides); tousLesSons.ExceptWith(sonsMuets); HashSet <string> sonsNonMuets = tousLesSons; foreach (string son in sonsMuets) { Assert.IsTrue(ccw.GetCheck(son)); } foreach (string son in sonsNonMuets) { Assert.IsFalse(ccw.GetCheck(son)); } CheckConsistency(ccw); }
public void TestChiffres() { TestTheText ttt = new TestTheText(txt47); ColConfWin ccw = conf.colors[PhonConfType.phonemes]; Dictionary <string, CharFormatting> son2CF = SetTestConfig(ccw); ttt.ColorizePhons(conf, PhonConfType.phonemes); int index = ttt.S.IndexOf("1867"); ttt.AssertCF(index, son2CF["mil"]); ttt.AssertCF(index + 1, son2CF["cen"]); ttt.AssertCF(index + 2, son2CF["diz"]); ttt.AssertCF(index + 3, son2CF["uni"]); index = ttt.S.IndexOf("Rênal"); ttt.AssertCF(index + 5, son2CF["uni"]); index = ttt.S.IndexOf("reme35rciant"); ttt.AssertCF(index + 4, son2CF["diz"]); ttt.AssertCF(index + 5, son2CF["uni"]); index = ttt.S.IndexOf("23femme"); ttt.AssertCF(index, son2CF["diz"]); ttt.AssertCF(index + 1, son2CF["uni"]); index = ttt.S.IndexOf("p45ar"); ttt.AssertCF(index + 1, son2CF["diz"]); index = ttt.S.IndexOf("déc0123456789idé"); ttt.AssertCF(index + 3, 6, son2CF["47"]); ttt.AssertCF(index + 9, son2CF["mil"]); ttt.AssertCF(index + 10, son2CF["cen"]); ttt.AssertCF(index + 11, son2CF["diz"]); ttt.AssertCF(index + 12, son2CF["uni"]); }
public void TestEvents1() { ColConfWin ccw = conf.colors[PhonConfType.phonemes]; // IllRuleToUse ccw.IllRuleToUse = ColConfWin.IllRule.undefined; ResetEventCounters(); ccw.IllRuleToUse = ColConfWin.IllRule.ceras; Assert.AreEqual(1, IllModifiedEvents.Count); Assert.AreEqual(PhonConfType.phonemes, IllModifiedEvents[0].pct); Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); Assert.IsTrue(ccw.GetFlag(ColConfWin.RuleFlag.IllCeras)); Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllLireCouleur)); ResetEventCounters(); ccw.IllRuleToUse = ColConfWin.IllRule.ceras; Assert.AreEqual(0, IllModifiedEvents.Count); Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); Assert.IsTrue(ccw.GetFlag(ColConfWin.RuleFlag.IllCeras)); Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllLireCouleur)); ResetEventCounters(); ccw.IllRuleToUse = ColConfWin.IllRule.lirecouleur; Assert.AreEqual(1, IllModifiedEvents.Count); Assert.AreEqual(PhonConfType.phonemes, IllModifiedEvents[0].pct); Assert.AreEqual(ColConfWin.IllRule.lirecouleur, ccw.IllRuleToUse); Assert.IsTrue(ccw.GetFlag(ColConfWin.RuleFlag.IllLireCouleur)); Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllCeras)); ResetEventCounters(); ccw.IllRuleToUse = ColConfWin.IllRule.lirecouleur; Assert.AreEqual(0, IllModifiedEvents.Count); Assert.AreEqual(ColConfWin.IllRule.lirecouleur, ccw.IllRuleToUse); Assert.IsTrue(ccw.GetFlag(ColConfWin.RuleFlag.IllLireCouleur)); Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllCeras)); ResetEventCounters(); // defBeh ccw.SetDefaultBehaviourTo(ColConfWin.DefBeh.noir); ResetEventCounters(); ccw.SetDefaultBehaviourTo(ColConfWin.DefBeh.transparent); Assert.AreEqual(1, DefBehModifiedEvents.Count); Assert.AreEqual(PhonConfType.phonemes, DefBehModifiedEvents[0].pct); Assert.AreEqual(ColConfWin.DefBeh.transparent, ccw.defBeh); ResetEventCounters(); ccw.SetDefaultBehaviourTo(ColConfWin.DefBeh.transparent); Assert.AreEqual(0, DefBehModifiedEvents.Count); Assert.AreEqual(ColConfWin.DefBeh.transparent, ccw.defBeh); ResetEventCounters(); ccw.SetDefaultBehaviourTo(ColConfWin.DefBeh.noir); Assert.AreEqual(1, DefBehModifiedEvents.Count); Assert.AreEqual(PhonConfType.phonemes, DefBehModifiedEvents[0].pct); Assert.AreEqual(ColConfWin.DefBeh.noir, ccw.defBeh); ResetEventCounters(); ccw.SetDefaultBehaviourTo(ColConfWin.DefBeh.undefined); Assert.AreEqual(1, DefBehModifiedEvents.Count); Assert.AreEqual(PhonConfType.phonemes, DefBehModifiedEvents[0].pct); Assert.AreEqual(ColConfWin.DefBeh.undefined, ccw.defBeh); ResetEventCounters(); CheckConsistency(ccw); }
public void TestColConfWinUndo_1() { ColConfWin ccw = new ColConfWin(PhonConfType.phonemes); ccw.SetCeras(); Assert.AreEqual(ColConfWinTest.cfAN, ccw.GetCF("an")); ccw.SetCbxAndCF("m", ColConfWinTest.cfBLEUCLAIR); Assert.AreEqual(ColConfWinTest.cfBLEUCLAIR, ccw.GetCF("m")); Assert.IsTrue(ccw.GetCheck("m")); ccw.SetCFSon("m", ColConfWinTest.cfON); Assert.AreEqual(ColConfWinTest.cfON, ccw.GetCF("m")); UndoFactory.UndoLastAction(); Assert.AreEqual(ColConfWinTest.cfBLEUCLAIR, ccw.GetCF("m")); UndoFactory.UndoLastAction(); Assert.AreEqual(ColConfWinTest.cfBlack, ccw.GetCF("m")); Assert.IsFalse(ccw.GetCheck("m")); UndoFactory.RedoLastCanceledAction(); Assert.AreEqual(ColConfWinTest.cfBLEUCLAIR, ccw.GetCF("m")); Assert.IsTrue(ccw.GetCheck("m")); UndoFactory.UndoLastAction(); Assert.AreEqual(ColConfWinTest.cfe, ccw.GetCF("é")); UndoFactory.UndoLastAction(); Assert.AreEqual(ColConfWinTest.cfeRose, ccw.GetCF("é")); ccw.SetChkSon("é", false); Assert.IsFalse(ccw.GetCheck("é")); UndoFactory.UndoLastAction(); Assert.IsTrue(ccw.GetCheck("é")); }
public void TestColConfWinUndo_3() { ColConfWin ccw = new ColConfWin(PhonConfType.phonemes); ccw.SetCeras(); Assert.AreEqual(ColConfWinTest.cfAN, ccw.GetCF("an")); ccw.SetCbxAndCF("m", ColConfWinTest.cfBLEUCLAIR); Assert.AreEqual(ColConfWinTest.cfBLEUCLAIR, ccw.GetCF("m")); Assert.IsTrue(ccw.GetCheck("m")); ccw.SetCFSon("m", ColConfWinTest.cfON); Assert.AreEqual(ColConfWinTest.cfON, ccw.GetCF("m")); ccw.IllRuleToUse = ColConfWin.IllRule.lirecouleur; Assert.AreEqual(ColConfWin.IllRule.lirecouleur, ccw.IllRuleToUse); ccw.SetDefaultBehaviourTo(ColConfWin.DefBeh.noir); Assert.AreEqual(ColConfWin.DefBeh.noir, ccw.defBeh); ccw.Reset(); Assert.AreEqual(ColConfWinTest.cfeRose, ccw.GetCF("é")); Assert.IsFalse(ccw.GetCheck("m")); Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); Assert.AreEqual(ColConfWin.DefBeh.transparent, ccw.defBeh); UndoFactory.UndoLastAction(); Assert.AreEqual(ColConfWinTest.cfON, ccw.GetCF("m")); Assert.IsTrue(ccw.GetCheck("m")); Assert.AreEqual(ColConfWin.IllRule.lirecouleur, ccw.IllRuleToUse); Assert.AreEqual(ColConfWin.DefBeh.noir, ccw.defBeh); }
private void CheckConsistency(ColConfWin ccw) { Assert.IsTrue(ccw.GetFlag(ColConfWin.RuleFlag.undefined)); Assert.ThrowsException <ArgumentOutOfRangeException> (() => ccw.GetFlag(ColConfWin.RuleFlag.last)); switch (ccw.IllRuleToUse) { case ColConfWin.IllRule.ceras: Assert.IsTrue(ccw.GetFlag(ColConfWin.RuleFlag.IllCeras)); Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllLireCouleur)); break; case ColConfWin.IllRule.lirecouleur: Assert.IsTrue(ccw.GetFlag(ColConfWin.RuleFlag.IllLireCouleur)); Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllCeras)); break; case ColConfWin.IllRule.undefined: Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllLireCouleur)); Assert.IsFalse(ccw.GetFlag(ColConfWin.RuleFlag.IllCeras)); break; default: throw new ArgumentOutOfRangeException("Valeur inconnue pour IllRuleToUse"); break; } }
public void TestFormatage1() { UnsetBehConf uB = conf.unsetBeh; ColConfWin ccw = conf.colors[PhonConfType.phonemes]; SylConfig sC = conf.sylConf; RGB color = new RGB(25, 100, 200); RGB hiColor = new RGB(200, 100, 25); CharFormatting cfAll = new CharFormatting(true, true, true, true, true, color, true, hiColor); ccw.SetCbxAndCF("m", cfAll); TestTheText ttt = new TestTheText(text1); ttt.ColorizePhons(conf, PhonConfType.phonemes); ttt.AssertBold(0, true); ttt.AssertItalic(0, true); ttt.AssertUnderline(0, true); ttt.AssertColor(0, color); ttt.AssertChangeHilight(0, true); ttt.AssertHilightColor(0, hiColor); ttt.AssertBold(10, true); // La config par défaut fait ça. ttt.AssertColor(10, TestTheText.black); ccw.SetCerasRose(); uB.SetCbuFlag("Bold", true); ttt.ColorizePhons(conf, PhonConfType.phonemes); ttt.AssertBold(0, false); ttt.AssertItalic(0, true); ttt.AssertUnderline(0, true); ttt.AssertColor(0, color); ttt.AssertChangeHilight(0, true); ttt.AssertHilightColor(0, hiColor); ttt.AssertBold(10, true); // Ceras rosé fait ça. ttt.AssertColor(10, TestTheText.black); uB.SetCbuFlag("All", true); ttt.ColorizePhons(conf, PhonConfType.phonemes); ttt.AssertBold(0, false); ttt.AssertItalic(0, false); ttt.AssertUnderline(0, false); ttt.AssertColor(0, TestTheText.black); ttt.AssertChangeHilight(0, false); ttt.AssertBold(10, true); // Ceras rosé fait ça. ttt.AssertColor(10, TestTheText.black); ttt.ColorizePhons(conf, PhonConfType.muettes); ttt.AssertBold(0, false); ttt.AssertItalic(0, false); ttt.AssertUnderline(0, false); ttt.AssertColor(0, TestTheText.black); ttt.AssertChangeHilight(0, false); ttt.AssertBold(10, false); ttt.AssertColor(10, TestTheText.black); }
public void MyTestInitialize() { conf = new Config(); ColConfWin ccw = conf.colors[PhonConfType.phonemes]; ccw.DefBehModifiedEvent += HandleDefBehModified; ccw.IllModifiedEvent += HandleIllModified; ccw.SonCBModifiedEvent += HandleSonCBModified; ccw.SonCharFormattingModifiedEvent += HandleSonCharFormattingModified; ResetEventCounters(); }
protected virtual string FormName(string son) { logger.ConditionalDebug("FormName {0}", son); StringBuilder sb = new StringBuilder(); sb.Append(this.Text); sb.Append(" "); sb.Append(ColConfWin.DisplayText(son)); sb.Append(" "); sb.Append(ColConfWin.ExampleText(son)); return(sb.ToString()); }
private Dictionary <string, CharFormatting> SetTestConfig(ColConfWin ccw) { Dictionary <string, CharFormatting> toReturn = new Dictionary <string, CharFormatting>(); int i = 0; foreach (string son in ColConfWin.sonsValides) { ccw.SetCbxAndCF(son, TestTheText.fixCFs[i]); Assert.IsTrue(ccw.GetCheck(son)); Assert.AreEqual(TestTheText.fixCFs[i], ccw.GetCF(son)); toReturn.Add(son, TestTheText.fixCFs[i]); i++; } return(toReturn); }
public void TestColConfWinUndo_2() { ColConfWin ccw = new ColConfWin(PhonConfType.phonemes); Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); ccw.IllRuleToUse = ColConfWin.IllRule.lirecouleur; Assert.AreEqual(ColConfWin.IllRule.lirecouleur, ccw.IllRuleToUse); UndoFactory.UndoLastAction(); Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); Assert.AreEqual(ColConfWin.DefBeh.transparent, ccw.defBeh); ccw.SetDefaultBehaviourTo(ColConfWin.DefBeh.noir); Assert.AreEqual(ColConfWin.DefBeh.noir, ccw.defBeh); UndoFactory.UndoLastAction(); Assert.AreEqual(ColConfWin.DefBeh.transparent, ccw.defBeh); }
/// <summary> /// Crée une "action" pour une modification de la checkbox d'un son. /// </summary> /// <remarks>Il s'agit d'une action de type "sonCB".</remarks> /// <param name="name">Le nom de l'action.</param> /// <param name="inCcw">Le <see cref="ColConfWin"/> auquel l'action se rapporte.</param> /// <param name="inSon">Le son sur lequel porte l'action.</param> /// <param name="inPrevCB">La valeur précédente de la checkbox (avant l'action).</param> /// <param name="inNewCB">La nouvelle valeur de la checkbox (après l'action).</param> public ColPhonAct(string name, ColConfWin inCcw, string inSon, bool inPrevCB, bool inNewCB) : base(name) { type = "sonCB"; ccw = inCcw; son = inSon; prevCB = inPrevCB; newCB = inNewCB; // pour éviter les membres non définis prevCF = null; newCF = null; prevIllRule = ColConfWin.IllRule.undefined; newIllRule = ColConfWin.IllRule.undefined; prevDefBeh = ColConfWin.DefBeh.undefined; newDefBeh = ColConfWin.DefBeh.undefined; }
/// <summary> /// Crée une "action" pour une modification de la règle "ill". /// </summary> /// <remarks>Il s'agit d'une action de type "ill".</remarks> /// <param name="name">Le nom de l'action.</param> /// <param name="inCcw">Le <see cref="ColConfWin"/> auquel l'action se rapporte.</param> /// <param name="inPrevIllRule">La valeur précédente de la règle "ill" /// (avant l'action).</param> /// <param name="inNewIllRule">La nouvelle valeur de la règle "ill" /// (après l'action).</param> public ColPhonAct(string name, ColConfWin inCcw, ColConfWin.IllRule inPrevIllRule, ColConfWin.IllRule inNewIllRule) : base(name) { type = "ill"; ccw = inCcw; prevIllRule = inPrevIllRule; newIllRule = inNewIllRule; // pour éviter les membres non définis son = null; prevCF = null; newCF = null; prevCB = false; newCB = false; prevDefBeh = ColConfWin.DefBeh.undefined; newDefBeh = ColConfWin.DefBeh.undefined; }
/// <summary> /// Crée une "action" pour une modification du formatage d'un son. /// </summary> /// <remarks>Il s'agit d'une action de type "sonCF".</remarks> /// <param name="name">Le nom de l'action.</param> /// <param name="inCcw">Le <see cref="ColConfWin"/> auquel l'action se rapporte.</param> /// <param name="inSon">Le son sur lequel porte l'action.</param> /// <param name="inPrevCF">La valeur précédente de formatage (avant l'action).</param> /// <param name="inNewCF">La nouvelle valeur de formatage (après l'action).</param> public ColPhonAct(string name, ColConfWin inCcw, string inSon, CharFormatting inPrevCF, CharFormatting inNewCF) : base(name) { type = "sonCF"; ccw = inCcw; son = inSon; prevCF = inPrevCF; newCF = inNewCF; // pour éviter les membres non définis prevCB = false; newCB = false; prevIllRule = ColConfWin.IllRule.undefined; newIllRule = ColConfWin.IllRule.undefined; prevDefBeh = ColConfWin.DefBeh.undefined; newDefBeh = ColConfWin.DefBeh.undefined; }
public void TestRuleFlags() { ColConfWin ccw = conf.colors[PhonConfType.muettes]; Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); CheckConsistency(ccw); ccw = conf.colors[PhonConfType.phonemes]; Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); CheckConsistency(ccw); ccw.IllRuleToUse = ColConfWin.IllRule.lirecouleur; Assert.AreEqual(ColConfWin.IllRule.lirecouleur, ccw.IllRuleToUse); CheckConsistency(ccw); ccw.IllRuleToUse = ColConfWin.IllRule.undefined; Assert.AreEqual(ColConfWin.IllRule.undefined, ccw.IllRuleToUse); CheckConsistency(ccw); }
private static Dictionary <Object, List <Object> > doc2Win; // key is document, value is list of windows // -------------------------------------- Public Static Methods ------------------------------------------------------- /// <summary> /// Initialise la partie statique de la classe (la gestion du mapping entre documents, fenêtres et configurations). /// Appelle les <c>Init()</c> statiques des autres classes de configuration. /// </summary> /// <remarks> Est responsable de la création du répertoire où seront sauvegardées les configs.</remarks> /// <param name="errMsgs">Si une erreur se produit, un message est ajouté à la liste. /// La liste n'est pas touchée si tout se passe bien. <c>null</c> indique que le message /// n'est pas souhaité par l'appelant.</param> public static new void Init(List <string> errMsgs = null) { logger.ConditionalDebug("Init"); ColConfWin.Init(); // Ensure that ConfigDirPath folder does exist if (!System.IO.Directory.Exists(ConfigDirPath)) { try { System.IO.Directory.CreateDirectory(ConfigDirPath); logger.Info("Dossier \'{0}\' créé.", ConfigDirPath); } catch (Exception e) when(e is IOException || e is UnauthorizedAccessException) { errMsgs?.Add("Impossible de créer le répertoire" + ConfigDirPath); logger.Error("Impossible de créer le répertoire {0}. Erreur {1}", ConfigDirPath, e.Message); } } theConfs = new Dictionary <object, Config>(); doc2Win = new Dictionary <object, List <object> >(); }
public void TestEvents3() { ColConfWin ccw = conf.colors[PhonConfType.phonemes]; int i = 0; foreach (string son in ColConfWin.sonsValides) { ccw.SetChkSon(son, false); ResetEventCounters(); ccw.SetChkSon(son, true); Assert.AreEqual(1, SonCBModifiedEvents.Count); Assert.AreEqual(son, SonCBModifiedEvents[0].son); Assert.AreEqual(PhonConfType.phonemes, SonCBModifiedEvents[0].pct); Assert.IsTrue(ccw.GetCheck(son)); ResetEventCounters(); ccw.SetChkSon(son, true); Assert.AreEqual(0, SonCBModifiedEvents.Count); Assert.IsTrue(ccw.GetCheck(son)); ResetEventCounters(); ccw.SetCFSon(son, TestTheText.fixCFs[i]); Assert.AreEqual(1, SonCharFormattingModifiedEvents.Count); Assert.AreEqual(son, SonCharFormattingModifiedEvents[0].son); Assert.AreEqual(PhonConfType.phonemes, SonCharFormattingModifiedEvents[0].pct); Assert.IsTrue(ccw.GetCheck(son)); Assert.AreEqual(TestTheText.fixCFs[i], ccw.GetCF(son)); ResetEventCounters(); ccw.SetCFSon(son, TestTheText.fixCFs[i]); Assert.AreEqual(0, SonCharFormattingModifiedEvents.Count); Assert.AreEqual(TestTheText.fixCFs[i], ccw.GetCF(son)); i++; } CheckConsistency(ccw); }
public void TestGetForPhons() { ColConfWin ccw = conf.colors[PhonConfType.phonemes]; Dictionary <string, CharFormatting> son2CF = SetTestConfig(ccw); Assert.AreEqual(ccw.GetCF("a"), ccw.GetCF(Phonemes.a)); Assert.AreEqual(ccw.GetCF("q"), ccw.GetCF(Phonemes.q)); Assert.AreEqual(ccw.GetCF("q_caduc"), ccw.GetCF(Phonemes.q_caduc)); Assert.AreEqual(ccw.GetCF("i"), ccw.GetCF(Phonemes.i)); Assert.AreEqual(ccw.GetCF("o"), ccw.GetCF(Phonemes.o)); Assert.AreEqual(ccw.GetCF("o"), ccw.GetCF(Phonemes.o_comp)); Assert.AreEqual(ccw.GetCF("u"), ccw.GetCF(Phonemes.u)); Assert.AreEqual(ccw.GetCF("y"), ccw.GetCF(Phonemes.y)); Assert.AreEqual(ccw.GetCF("é"), ccw.GetCF(Phonemes.e)); Assert.AreEqual(ccw.GetCF("è"), ccw.GetCF(Phonemes.E)); Assert.AreEqual(ccw.GetCF("è"), ccw.GetCF(Phonemes.E_comp)); Assert.AreEqual(ccw.GetCF("é"), ccw.GetCF(Phonemes.e_comp)); Assert.AreEqual(ccw.GetCF("5"), ccw.GetCF(Phonemes.e_tilda)); Assert.AreEqual(ccw.GetCF("an"), ccw.GetCF(Phonemes.a_tilda)); Assert.AreEqual(ccw.GetCF("on"), ccw.GetCF(Phonemes.o_tilda)); Assert.AreEqual(ccw.GetCF("1"), ccw.GetCF(Phonemes.x_tilda)); Assert.AreEqual(ccw.GetCF("2"), ccw.GetCF(Phonemes.x2)); Assert.AreEqual(ccw.GetCF("oi"), ccw.GetCF(Phonemes.oi)); Assert.AreEqual(ccw.GetCF("oin"), ccw.GetCF(Phonemes.w_e_tilda)); Assert.AreEqual(ccw.GetCF("w"), ccw.GetCF(Phonemes.w)); Assert.AreEqual(ccw.GetCF("j"), ccw.GetCF(Phonemes.j)); Assert.AreEqual(ccw.GetCF("ng"), ccw.GetCF(Phonemes.J)); Assert.AreEqual(ccw.GetCF("ij"), ccw.GetCF(Phonemes.i_j)); Assert.AreEqual(ccw.GetCF("gn"), ccw.GetCF(Phonemes.N)); Assert.AreEqual(ccw.GetCF("p"), ccw.GetCF(Phonemes.p)); Assert.AreEqual(ccw.GetCF("b"), ccw.GetCF(Phonemes.b)); Assert.AreEqual(ccw.GetCF("t"), ccw.GetCF(Phonemes.t)); Assert.AreEqual(ccw.GetCF("d"), ccw.GetCF(Phonemes.d)); Assert.AreEqual(ccw.GetCF("k"), ccw.GetCF(Phonemes.k)); Assert.AreEqual(ccw.GetCF("g"), ccw.GetCF(Phonemes.g)); Assert.AreEqual(ccw.GetCF("f"), ccw.GetCF(Phonemes.f)); Assert.AreEqual(ccw.GetCF("v"), ccw.GetCF(Phonemes.v)); Assert.AreEqual(ccw.GetCF("s"), ccw.GetCF(Phonemes.s)); Assert.AreEqual(ccw.GetCF("z"), ccw.GetCF(Phonemes.z)); Assert.AreEqual(ccw.GetCF("ch"), ccw.GetCF(Phonemes.S)); Assert.AreEqual(ccw.GetCF("ge"), ccw.GetCF(Phonemes.Z)); Assert.AreEqual(ccw.GetCF("m"), ccw.GetCF(Phonemes.m)); Assert.AreEqual(ccw.GetCF("n"), ccw.GetCF(Phonemes.n)); Assert.AreEqual(ccw.GetCF("l"), ccw.GetCF(Phonemes.l)); Assert.AreEqual(ccw.GetCF("r"), ccw.GetCF(Phonemes.R)); Assert.AreEqual(ccw.GetCF("f"), ccw.GetCF(Phonemes.f_ph)); Assert.AreEqual(ccw.GetCF("k"), ccw.GetCF(Phonemes.k_qu)); Assert.AreEqual(ccw.GetCF("g"), ccw.GetCF(Phonemes.g_u)); Assert.AreEqual(ccw.GetCF("s"), ccw.GetCF(Phonemes.s_c)); Assert.AreEqual(ccw.GetCF("s"), ccw.GetCF(Phonemes.s_t)); Assert.AreEqual(ccw.GetCF("s"), ccw.GetCF(Phonemes.s_x)); Assert.AreEqual(ccw.GetCF("z"), ccw.GetCF(Phonemes.z_s)); Assert.AreEqual(ccw.GetCF("ks"), ccw.GetCF(Phonemes.ks)); Assert.AreEqual(ccw.GetCF("gz"), ccw.GetCF(Phonemes.gz)); Assert.AreEqual(ccw.GetCF("_muet"), ccw.GetCF(Phonemes.verb_3p)); Assert.AreEqual(ccw.GetCF("_muet"), ccw.GetCF(Phonemes._muet)); Assert.AreEqual(ccw.GetCF("ill"), ccw.GetCF(Phonemes.j_ill)); Assert.AreEqual(ccw.GetCF("ill"), ccw.GetCF(Phonemes.i_j_ill)); Assert.AreEqual(ccw.GetCF("j"), ccw.GetCF(Phonemes.ji)); Assert.AreEqual(ccw.GetCF("47"), ccw.GetCF(Phonemes.chiffre)); }
public void TestEvents2() { ColConfWin ccw = conf.colors[PhonConfType.phonemes]; int i = 0; foreach (string son in ColConfWin.sonsValides) { ResetEventCounters(); bool prevCbxVal = ccw.GetCheck(son); if (!prevCbxVal) { ccw.SetChkSon(son, true); } CharFormatting prevCF = ccw.GetCF(son); if (!prevCbxVal) { ccw.SetChkSon(son, false); } ResetEventCounters(); ccw.ClearSon(son); if (prevCbxVal) { Assert.AreEqual(1, SonCBModifiedEvents.Count); Assert.AreEqual(son, SonCBModifiedEvents[0].son); Assert.AreEqual(PhonConfType.phonemes, SonCBModifiedEvents[0].pct); } else { Assert.AreEqual(0, SonCBModifiedEvents.Count); } Assert.IsFalse(ccw.GetCheck(son)); if (prevCF != TestTheText.blackCF) { Assert.AreEqual(1, SonCharFormattingModifiedEvents.Count); Assert.AreEqual(son, SonCharFormattingModifiedEvents[0].son); Assert.AreEqual(PhonConfType.phonemes, SonCharFormattingModifiedEvents[0].pct); ccw.SetChkSon(son, true); Assert.AreEqual(TestTheText.blackCF, ccw.GetCF(son)); ccw.SetChkSon(son, false); } else { Assert.AreEqual(0, SonCharFormattingModifiedEvents.Count); } ResetEventCounters(); ccw.SetCbxAndCF(son, TestTheText.fixCFs[i]); Assert.AreEqual(1, SonCBModifiedEvents.Count); Assert.AreEqual(son, SonCBModifiedEvents[0].son); Assert.AreEqual(PhonConfType.phonemes, SonCBModifiedEvents[0].pct); Assert.IsTrue(ccw.GetCheck(son)); Assert.AreEqual(1, SonCharFormattingModifiedEvents.Count); Assert.AreEqual(son, SonCharFormattingModifiedEvents[0].son); Assert.AreEqual(PhonConfType.phonemes, SonCharFormattingModifiedEvents[0].pct); Assert.AreEqual(TestTheText.fixCFs[i], ccw.GetCF(son)); i++; } ResetEventCounters(); ccw.ClearAllCbxSons(); Assert.AreEqual(i, SonCBModifiedEvents.Count); foreach (string son in ColConfWin.sonsValides) { bool found = false; foreach (SonConfigModifiedEventArgs a in SonCBModifiedEvents) { if (a.son == son) { found = true; Assert.IsFalse(ccw.GetCheck(son)); break; } } Assert.IsTrue(found); } ResetEventCounters(); ccw.SetAllCbxSons(); Assert.AreEqual(i, SonCBModifiedEvents.Count); foreach (string son in ColConfWin.sonsValides) { bool found = false; foreach (SonConfigModifiedEventArgs a in SonCBModifiedEvents) { if (a.son == son) { found = true; Assert.IsTrue(ccw.GetCheck(son)); break; } } Assert.IsTrue(found); } CheckConsistency(ccw); }
public void TestePredefCols() { ColConfWin ccw = conf.colors[PhonConfType.phonemes]; Assert.AreEqual(cNoir, ColConfWin.predefinedColors[(int)PredefCol.black]); Assert.AreEqual(cJaune, ColConfWin.predefinedColors[(int)PredefCol.darkYellow]); Assert.AreEqual(cOrange, ColConfWin.predefinedColors[(int)PredefCol.orange]); Assert.AreEqual(cVertSapin, ColConfWin.predefinedColors[(int)PredefCol.darkGreen]); Assert.AreEqual(cViolet, ColConfWin.predefinedColors[(int)PredefCol.violet]); Assert.AreEqual(cBleuFoncé, ColConfWin.predefinedColors[(int)PredefCol.darkBlue]); Assert.AreEqual(cRouge, ColConfWin.predefinedColors[(int)PredefCol.red]); Assert.AreEqual(cMarron, ColConfWin.predefinedColors[(int)PredefCol.brown]); Assert.AreEqual(cBleu, ColConfWin.predefinedColors[(int)PredefCol.blue]); Assert.AreEqual(cTurquoise, ColConfWin.predefinedColors[(int)PredefCol.turquoise]); Assert.AreEqual(cGris, ColConfWin.predefinedColors[(int)PredefCol.grey]); Assert.AreEqual(cRose, ColConfWin.predefinedColors[(int)PredefCol.pink]); Assert.AreEqual(cVertGren, ColConfWin.predefinedColors[(int)PredefCol.frogGreen]); Assert.AreEqual(cGrisUn, ColConfWin.predefinedColors[(int)PredefCol.cerasUn]); Assert.AreEqual(cGrisNeutre, ColConfWin.predefinedColors[(int)PredefCol.neutral]); Assert.AreEqual(cBleuPur, ColConfWin.predefinedColors[(int)PredefCol.pureBlue]); Assert.AreEqual(cBleuClair, ColConfWin.predefinedColors[(int)PredefCol.lightBlue]); Assert.AreEqual(cRougeFonce, ColConfWin.predefinedColors[(int)PredefCol.darkRed]); Assert.AreEqual(cBlanc, ColConfWin.predefinedColors[(int)PredefCol.white]); // CharFormatting Assert.AreEqual(cfBlack, ColConfWin.coloredCF[(int)PredefCol.black]); Assert.AreEqual(cfO, ColConfWin.coloredCF[(int)PredefCol.darkYellow]); Assert.AreEqual(cfAN, ColConfWin.coloredCF[(int)PredefCol.orange]); Assert.AreEqual(cf5, ColConfWin.coloredCF[(int)PredefCol.darkGreen]); Assert.AreEqual(cfE, ColConfWin.coloredCF[(int)PredefCol.violet]); Assert.AreEqual(cfe, ColConfWin.coloredCF[(int)PredefCol.darkBlue]); Assert.AreEqual(cfu, ColConfWin.coloredCF[(int)PredefCol.red]); Assert.AreEqual(cfON, ColConfWin.coloredCF[(int)PredefCol.brown]); Assert.AreEqual(cf2, ColConfWin.coloredCF[(int)PredefCol.blue]); Assert.AreEqual(cfOIN, ColConfWin.coloredCF[(int)PredefCol.turquoise]); Assert.AreEqual(cfMUET, ColConfWin.coloredCF[(int)PredefCol.grey]); Assert.AreEqual(cfeRose, ColConfWin.coloredCF[(int)PredefCol.pink]); Assert.AreEqual(cfVGrenou, ColConfWin.coloredCF[(int)PredefCol.frogGreen]); Assert.AreEqual(cfGrisUn, ColConfWin.coloredCF[(int)PredefCol.cerasUn]); Assert.AreEqual(cfNeutre, ColConfWin.coloredCF[(int)PredefCol.neutral]); Assert.AreEqual(cfBLEU, ColConfWin.coloredCF[(int)PredefCol.pureBlue]); Assert.AreEqual(cfBLEUCLAIR, ColConfWin.coloredCF[(int)PredefCol.lightBlue]); Assert.AreEqual(cfROUGEF, ColConfWin.coloredCF[(int)PredefCol.darkRed]); Assert.AreEqual(cfBLANC, ColConfWin.coloredCF[(int)PredefCol.white]); // La seule chose qui compte pour les couleurs CERAS est qu'elles soient attribuées // correctement aux sons. // configuration par défaut: CERAS rosé. HashSet <string> cerasSons = new HashSet <string>() { "oi", "o", "an", "5", "è", "u", "on", "2", "oin", "_muet", "é", "ill", "1" }; HashSet <string> tousLesSons = new HashSet <string>(ColConfWin.sonsValides); tousLesSons.ExceptWith(cerasSons); HashSet <string> sonsNonCeras = tousLesSons; Assert.IsTrue(cerasSons.IsSubsetOf(ColConfWin.sonsValides)); Assert.AreEqual(cfOI, ccw.GetCF("oi")); Assert.AreEqual(cfO, ccw.GetCF("o")); Assert.AreEqual(cfAN, ccw.GetCF("an")); Assert.AreEqual(cf5, ccw.GetCF("5")); Assert.AreEqual(cfE, ccw.GetCF("è")); Assert.AreEqual(cfu, ccw.GetCF("u")); Assert.AreEqual(cfON, ccw.GetCF("on")); Assert.AreEqual(cf2, ccw.GetCF("2")); Assert.AreEqual(cfOIN, ccw.GetCF("oin")); Assert.AreEqual(cfMUET, ccw.GetCF("_muet")); Assert.AreEqual(cfeRose, ccw.GetCF("é")); Assert.AreEqual(cfILL, ccw.GetCF("ill")); Assert.AreEqual(cf1, ccw.GetCF("1")); foreach (string son in cerasSons) { Assert.IsTrue(ccw.GetCheck(son)); } foreach (string son in sonsNonCeras) { Assert.IsFalse(ccw.GetCheck(son)); } ResetEventCounters(); ccw.SetCeras(); Assert.AreEqual(2, SonCharFormattingModifiedEvents.Count); // é et ill Assert.AreEqual(1, SonCBModifiedEvents.Count); // ill Assert.AreEqual("ill", SonCBModifiedEvents[0].son); Assert.AreEqual(cfOI, ccw.GetCF("oi")); Assert.AreEqual(cfO, ccw.GetCF("o")); Assert.AreEqual(cfAN, ccw.GetCF("an")); Assert.AreEqual(cf5, ccw.GetCF("5")); Assert.AreEqual(cfE, ccw.GetCF("è")); Assert.AreEqual(cfe, ccw.GetCF("é")); Assert.AreEqual(cfu, ccw.GetCF("u")); Assert.AreEqual(cfON, ccw.GetCF("on")); Assert.AreEqual(cf2, ccw.GetCF("2")); Assert.AreEqual(cfOIN, ccw.GetCF("oin")); Assert.AreEqual(cfMUET, ccw.GetCF("_muet")); Assert.AreEqual(cf1, ccw.GetCF("1")); cerasSons.Remove("ill"); sonsNonCeras.Add("ill"); foreach (string son in cerasSons) { Assert.IsTrue(ccw.GetCheck(son)); } foreach (string son in sonsNonCeras) { Assert.IsFalse(ccw.GetCheck(son)); } CheckConsistency(ccw); }
public void TestFormatage2() { UnsetBehConf uB = conf.unsetBeh; ColConfWin ccw = conf.colors[PhonConfType.phonemes]; SylConfig sC = conf.sylConf; RGB color = new RGB(25, 100, 200); RGB hiColor = new RGB(200, 100, 25); CharFormatting cfAll = new CharFormatting(true, true, true, true, true, color, true, hiColor); ccw.SetCbxAndCF("p", cfAll); TestTheText ttt = new TestTheText(text1); ttt.ColorizePhons(conf, PhonConfType.phonemes); ttt.AssertBold(9, true); ttt.AssertItalic(9, true); ttt.AssertUnderline(9, true); ttt.AssertColor(9, color); ttt.AssertChangeHilight(9, true); ttt.AssertHilightColor(9, hiColor); ttt.AssertBold(10, true); // La config par défaut fait ça. ttt.AssertColor(10, TestTheText.black); ttt.MarkLetters(conf); // ça ne devrait pas toucher au P majuscule... ttt.AssertBold(9, true); ttt.AssertItalic(9, true); ttt.AssertUnderline(9, true); ttt.AssertColor(9, color); ttt.AssertChangeHilight(9, true); ttt.AssertHilightColor(9, hiColor); ttt.AssertBold(10, true); ttt.AssertColor(10, TestTheText.black); uB.SetCbuFlag("Italic", true); ttt.MarkLetters(conf); ttt.AssertBold(9, true); ttt.AssertItalic(9, false); ttt.AssertUnderline(9, true); ttt.AssertColor(9, color); ttt.AssertChangeHilight(9, true); ttt.AssertHilightColor(9, hiColor); ttt.AssertBold(10, true); ttt.AssertColor(10, TestTheText.black); uB.SetCbuFlag("Underline", true); ttt.MarkLetters(conf); ttt.AssertBold(9, true); ttt.AssertItalic(9, false); ttt.AssertUnderline(9, false); ttt.AssertColor(9, color); ttt.AssertChangeHilight(9, true); ttt.AssertHilightColor(9, hiColor); ttt.AssertBold(10, true); ttt.AssertColor(10, TestTheText.black); uB.SetCbuFlag("All", true); ttt.MarkLetters(conf); ttt.AssertBold(9, false); ttt.AssertItalic(9, false); ttt.AssertUnderline(9, false); ttt.AssertColor(9, TestTheText.black); ttt.AssertChangeHilight(9, false); ttt.AssertBold(10, false); ttt.AssertColor(10, TestTheText.black); }
public void TestMiseEnCouleur() { ColConfWin ccw = conf.colors[PhonConfType.phonemes]; Dictionary <string, CharFormatting> son2CF = SetTestConfig(ccw); TestTheText ttt = new TestTheText(text1); ttt.ColorizePhons(conf, PhonConfType.phonemes); int index = ttt.S.IndexOf("Monsieur"); ttt.AssertCF(index, 1, son2CF["m"]); ttt.AssertCF(index + 1, 2, son2CF["q"]); ttt.AssertCF(index + 3, 1, son2CF["s"]); ttt.AssertCF(index + 4, 1, son2CF["j"]); ttt.AssertCF(index + 5, 2, son2CF["2"]); ttt.AssertCF(index + 7, 1, son2CF["_muet"]); index = ttt.S.IndexOf("imparfaitement"); ttt.AssertCF(index, 2, son2CF["5"]); ttt.AssertCF(index + 2, 1, son2CF["p"]); ttt.AssertCF(index + 3, 1, son2CF["a"]); ttt.AssertCF(index + 4, 1, son2CF["r"]); ttt.AssertCF(index + 5, 1, son2CF["f"]); ttt.AssertCF(index + 6, 2, son2CF["è"]); ttt.AssertCF(index + 8, 1, son2CF["t"]); ttt.AssertCF(index + 9, 1, son2CF["q"]); ttt.AssertCF(index + 10, 1, son2CF["m"]); ttt.AssertCF(index + 11, 2, son2CF["an"]); ttt.AssertCF(index + 13, 1, son2CF["_muet"]); Assert.AreEqual(ColConfWin.IllRule.ceras, ccw.IllRuleToUse); index = ttt.S.IndexOf("papillonnent"); ttt.AssertCF(index, 1, son2CF["p"]); ttt.AssertCF(index + 1, 1, son2CF["a"]); ttt.AssertCF(index + 2, 1, son2CF["p"]); ttt.AssertCF(index + 3, 3, son2CF["ill"]); ttt.AssertCF(index + 6, 1, son2CF["o"]); ttt.AssertCF(index + 7, 2, son2CF["n"]); ttt.AssertCF(index + 9, 1, son2CF["q_caduc"]); ttt.AssertCF(index + 10, 2, son2CF["_muet"]); index = ttt.S.IndexOf("couverte"); ttt.AssertCF(index, 1, son2CF["k"]); ttt.AssertCF(index + 1, 2, son2CF["u"]); ttt.AssertCF(index + 3, 1, son2CF["v"]); ttt.AssertCF(index + 4, 1, son2CF["è"]); ttt.AssertCF(index + 5, 1, son2CF["r"]); ttt.AssertCF(index + 6, 1, son2CF["t"]); ttt.AssertCF(index + 7, 1, son2CF["q_caduc"]); index = ttt.S.IndexOf("ombre"); ttt.AssertCF(index, 2, son2CF["on"]); ttt.AssertCF(index + 2, 1, son2CF["b"]); ttt.AssertCF(index + 3, 1, son2CF["r"]); ttt.AssertCF(index + 4, 1, son2CF["q_caduc"]); index = ttt.S.IndexOf("mécanique"); ttt.AssertCF(index, 1, son2CF["m"]); ttt.AssertCF(index + 1, 1, son2CF["é"]); ttt.AssertCF(index + 2, 1, son2CF["k"]); ttt.AssertCF(index + 3, 1, son2CF["a"]); ttt.AssertCF(index + 4, 1, son2CF["n"]); ttt.AssertCF(index + 5, 1, son2CF["i"]); ttt.AssertCF(index + 6, 2, son2CF["k"]); ttt.AssertCF(index + 8, 1, son2CF["q_caduc"]); index = ttt.S.IndexOf("culotte"); ttt.AssertCF(index, 1, son2CF["k"]); ttt.AssertCF(index + 1, 1, son2CF["y"]); ttt.AssertCF(index + 2, 1, son2CF["l"]); ttt.AssertCF(index + 3, 1, son2CF["o"]); ttt.AssertCF(index + 4, 2, son2CF["t"]); ttt.AssertCF(index + 6, 1, son2CF["q_caduc"]); index = ttt.S.IndexOf("Poiret"); ttt.AssertCF(index, 1, son2CF["p"]); ttt.AssertCF(index + 1, 2, son2CF["oi"]); ttt.AssertCF(index + 3, 1, son2CF["r"]); ttt.AssertCF(index + 4, 2, son2CF["è"]); TestTheText ttt2 = new TestTheText("pria"); ttt2.ColorizePhons(conf, PhonConfType.phonemes); ttt2.AssertCF(0, 1, son2CF["p"]); ttt2.AssertCF(1, 1, son2CF["r"]); ttt2.AssertCF(2, 1, son2CF["ij"]); ttt2.AssertCF(3, 1, son2CF["a"]); index = ttt.S.IndexOf(@"celles d’un"); ttt.AssertCF(index + 9, 2, son2CF["1"]); ttt2 = new TestTheText("soin"); ttt2.ColorizePhons(conf, PhonConfType.phonemes); ttt2.AssertCF(0, 1, son2CF["s"]); ttt2.AssertCF(1, 3, son2CF["oin"]); ttt2 = new TestTheText("parking"); ttt2.ColorizePhons(conf, PhonConfType.phonemes); ttt2.AssertCF(0, 1, son2CF["p"]); ttt2.AssertCF(1, 1, son2CF["a"]); ttt2.AssertCF(2, 1, son2CF["r"]); ttt2.AssertCF(3, 1, son2CF["k"]); ttt2.AssertCF(4, 1, son2CF["i"]); ttt2.AssertCF(5, 2, son2CF["ng"]); index = ttt.S.IndexOf("Jardin"); ttt.AssertCF(index, 1, son2CF["ge"]); ttt.AssertCF(index + 1, 1, son2CF["a"]); ttt.AssertCF(index + 2, 1, son2CF["r"]); ttt.AssertCF(index + 3, 1, son2CF["d"]); ttt.AssertCF(index + 4, 2, son2CF["5"]); index = ttt.S.IndexOf("chinoise"); ttt.AssertCF(index, 2, son2CF["ch"]); ttt.AssertCF(index + 2, 1, son2CF["i"]); ttt.AssertCF(index + 3, 1, son2CF["n"]); ttt.AssertCF(index + 4, 2, son2CF["oi"]); ttt.AssertCF(index + 6, 1, son2CF["z"]); ttt.AssertCF(index + 7, 1, son2CF["q_caduc"]); index = ttt.S.IndexOf("grise"); ttt.AssertCF(index, 1, son2CF["g"]); ttt.AssertCF(index + 1, 1, son2CF["r"]); ttt.AssertCF(index + 2, 1, son2CF["i"]); ttt.AssertCF(index + 3, 1, son2CF["z"]); ttt.AssertCF(index + 4, 1, son2CF["q_caduc"]); ttt2 = new TestTheText("ligne"); ttt2.ColorizePhons(conf, PhonConfType.phonemes); ttt2.AssertCF(0, 1, son2CF["l"]); ttt2.AssertCF(1, 1, son2CF["i"]); ttt2.AssertCF(2, 2, son2CF["gn"]); ttt2.AssertCF(4, 1, son2CF["q_caduc"]); ttt2 = new TestTheText("rixe"); ttt2.ColorizePhons(conf, PhonConfType.phonemes); ttt2.AssertCF(0, 1, son2CF["r"]); ttt2.AssertCF(1, 1, son2CF["i"]); ttt2.AssertCF(2, 1, son2CF["ks"]); ttt2.AssertCF(3, 1, son2CF["q_caduc"]); ttt2 = new TestTheText("examen"); ttt2.ColorizePhons(conf, PhonConfType.phonemes); ttt2.AssertCF(0, 1, son2CF["è"]); ttt2.AssertCF(1, 1, son2CF["gz"]); ttt2.AssertCF(2, 1, son2CF["a"]); ttt2.AssertCF(3, 1, son2CF["m"]); ttt2.AssertCF(4, 2, son2CF["5"]); ttt2 = new TestTheText("kiwi"); ttt2.ColorizePhons(conf, PhonConfType.phonemes); ttt2.AssertCF(0, 1, son2CF["k"]); ttt2.AssertCF(1, 1, son2CF["i"]); ttt2.AssertCF(2, 1, son2CF["w"]); ttt2.AssertCF(3, 1, son2CF["i"]); ccw.IllRuleToUse = ColConfWin.IllRule.lirecouleur; ttt.ColorizePhons(conf, PhonConfType.phonemes); Assert.AreEqual(ColConfWin.IllRule.lirecouleur, ccw.IllRuleToUse); index = ttt.S.IndexOf("papillonnent"); ttt.AssertCF(index, 1, son2CF["p"]); ttt.AssertCF(index + 1, 1, son2CF["a"]); ttt.AssertCF(index + 2, 1, son2CF["p"]); ttt.AssertCF(index + 3, 1, son2CF["i"]); ttt.AssertCF(index + 4, 2, son2CF["j"]); ttt.AssertCF(index + 6, 1, son2CF["o"]); ttt.AssertCF(index + 7, 2, son2CF["n"]); ttt.AssertCF(index + 9, 1, son2CF["q_caduc"]); ttt.AssertCF(index + 10, 2, son2CF["_muet"]); }
public void TestFireRuleI() { AutomLetter al; int pos; string tstAL; TheText tt; List <PhonWord> pws; int wordI; string rTxt; ColConfWin.Init(); TheText.Init(); Config conf = new Config(); tstAL = @"'i' : [['ing','n','m','nm','prec_2cons','lldeb','vill','mill','tranquille', 'ill','@ill','@il','ll','ui','ient_1','ient_2','ie','i_voyelle', '*'], {'ing':[{'-':/[bcçdfghjklmnpqrstvwxz]/i,'+':/ng$/i},'i',1], 'n':[{'+':/n[bcçdfghjklmpqrstvwxz]/i},'e_tilda',2], 'm':[{'+':/m[bcçdfghjklnpqrstvwxz]/i},'e_tilda',2], 'nm':[{'+':/[n|m]$/i},'e_tilda',2], 'prec_2cons':[{'-':/[ptkcbdgfv][lr]/i, '+':/[aäâeéèêëoôöuù]/i},'i_j',1], // précédé de 2 consonnes (en position 3), doit apparaître comme [ij] PAE: rajouté les voyelles 'lldeb':[{'-':/^/i,'+':/ll/i},'i',1], 'vill':[{'-':/v/i,'+':/ll/i},'i',1], 'mill':[{'-':/m/i,'+':/ll/i},'i',1], 'tranquille':[{'-':/tranqu/i,'+':/ll/i},'i',1], 'ill':[{'+':/ll/i,'-':/[bcçdfghjklmnpqrstvwxz](u?)/i},'i',1], // précédé éventuellement d'un u et d'une consonne, donne le son [i] '@ill':[{'-':/[aeo]/i,'+':/ll/i},'j',3], // par défaut précédé d'une voyelle et suivi de 'll' donne le son [j] '@il':[{'-':/[aeou]/i,'+':/l(s?)$/i},'j',2], // par défaut précédé d'une voyelle et suivi de 'l' donne le son [j] 'll':[{'+':/ll/i},'j',3], // par défaut avec ll donne le son [j] 'ui':[{'-':/u/i,'+':/ent/i},'i',1], // essuient, appuient 'ient_1':[this.Regle_ient,'i',1], // règle spécifique pour différencier les verbes du premier groupe 3ème pers pluriel 'ient_2':[{'+':/ent(s)?$/i},'j',1], // si la règle précédente ne fonctionne pas 'ie':[{'+':/e(s|nt)?$/i},'i',1], // mots terminés par -ie(s|nt) 'i_voyelle':[{'+':/[aäâeéèêëoôöuù]/i},'j',1], // i suivi d'une voyelle donne [j] '*':[{},'i',1]}]" ; pos = 0; al = new AutomLetter(tstAL, ref pos); tt = new TheText(@"briefing, berlingot, sapin, imbécile, limbe, afin, prier, ville, paille, triage, appartient, amplifient, glorifient"); pws = tt.GetPhonWordList(conf); foreach (PhonWord pw in pws) { pw.ClearPhons(); } // briefing wordI = 0; pos = 5; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(6, pos); Assert.AreEqual("i", pws[wordI].Phonetique()); // berlingot wordI = 1; pos = 4; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(6, pos); Assert.AreEqual("5", pws[wordI].Phonetique()); // sapin wordI = 2; pos = 3; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(5, pos); Assert.AreEqual("5", pws[wordI].Phonetique()); // imbécile wordI = 3; pos = 0; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(2, pos); Assert.AreEqual("5", pws[wordI].Phonetique()); // limbe wordI = 4; pos = 1; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(3, pos); Assert.AreEqual("5", pws[wordI].Phonetique()); // afin wordI = 5; pos = 2; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(4, pos); Assert.AreEqual("5", pws[wordI].Phonetique()); // prier wordI = 6; pos = 2; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(3, pos); Assert.AreEqual("ij", pws[wordI].Phonetique()); // ville wordI = 7; pos = 1; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(2, pos); Assert.AreEqual("i", pws[wordI].Phonetique()); // paille wordI = 8; pos = 2; al.FireRule(pws[wordI], ref pos, conf); rTxt = pws[wordI].AllStringInfo(); StringAssert.Matches(rTxt, new Regex(@"Rule: @ill")); Assert.AreEqual(5, pos); Assert.AreEqual("j", pws[wordI].Phonetique()); // triage wordI = 9; pos = 2; al.FireRule(pws[wordI], ref pos, conf); rTxt = pws[wordI].AllStringInfo(); StringAssert.Matches(rTxt, new Regex(@"Rule: prec_2cons")); Assert.AreEqual(3, pos); Assert.AreEqual("ij", pws[wordI].Phonetique()); // appartient wordI = 10; pos = 6; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(7, pos); Assert.AreEqual("j", pws[wordI].Phonetique()); // amplifient wordI = 11; pos = 6; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(7, pos); Assert.AreEqual("i", pws[wordI].Phonetique()); // glorifient wordI = 12; pos = 4; al.FireRule(pws[wordI], ref pos, conf); Assert.AreEqual(5, pos); Assert.AreEqual("i", pws[wordI].Phonetique()); }