Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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"]);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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("é"));
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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;
            }
        }
Beispiel #8
0
        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);
        }
Beispiel #9
0
        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();
        }
Beispiel #10
0
        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());
        }
Beispiel #11
0
        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);
        }
Beispiel #12
0
        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);
        }
Beispiel #13
0
 /// <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;
 }
Beispiel #14
0
 /// <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;
 }
Beispiel #15
0
 /// <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;
 }
Beispiel #16
0
        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);
        }
Beispiel #17
0
        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> >();
        }
Beispiel #18
0
        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);
        }
Beispiel #19
0
        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));
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
        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"]);
        }
Beispiel #24
0
        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());
        }