コード例 #1
0
        public void Load_Nonempty()
        {
            CoreWritingSystemDefinition ws1 = m_wsManager.Create("en");

            ws1.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "e", "f", "g", "h" }
            });
            ws1.CharacterSets.Add(new CharacterSetDefinition("punctuation")
            {
                Characters = { ",", "!", "*" }
            });
            ValidCharacters validChars  = ValidCharacters.Load(ws1);
            var             validCharsW = new ValidCharsWrapper(validChars);

            Assert.AreEqual(4, validCharsW.WordFormingCharacters.Count);
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("e"));
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("f"));
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("g"));
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("h"));
            Assert.AreEqual(3, validCharsW.OtherCharacters.Count);
            Assert.IsTrue(validCharsW.OtherCharacters.Contains(","));
            Assert.IsTrue(validCharsW.OtherCharacters.Contains("!"));
            Assert.IsTrue(validCharsW.OtherCharacters.Contains("*"));
            CoreWritingSystemDefinition ws2 = m_wsManager.Create("en");

            validChars.SaveTo(ws2);
            Assert.That(ws1.ValueEquals(ws2), Is.True);
        }
コード例 #2
0
        public void GetNaturalCharType(int codepoint, ValidCharacterType type)
        {
            CoreWritingSystemDefinition ws         = m_wsManager.Create("en-US");
            ValidCharacters             validChars = ValidCharacters.Load(ws);

            Assert.AreEqual(type, ReflectionHelper.GetResult(validChars, "GetNaturalCharType", codepoint));
        }
コード例 #3
0
        public void Load_ValidAndBogusCharacters()
        {
            CoreWritingSystemDefinition ws = m_wsManager.Create("en-US");

            ws.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "\u05F6", "g", "\u05F7", "h" }
            });
            ws.CharacterSets.Add(new CharacterSetDefinition("numeric")
            {
                Characters = { "1" }
            });
            ValidCharacters validChars  = ValidCharacters.Load(ws, RememberError);
            var             validCharsW = new ValidCharsWrapper(validChars);

            Assert.AreEqual(2, validCharsW.WordFormingCharacters.Count);
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("g"));
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("h"));
            Assert.AreEqual(1, validCharsW.NumericCharacters.Count);
            Assert.IsTrue(validCharsW.NumericCharacters.Contains("1"));
            Assert.AreEqual(0, validCharsW.OtherCharacters.Count);

            Assert.AreEqual("Invalid ValidChars field while loading the English (United States) writing system. " +
                            "The following characters are invalid:" +
                            Environment.NewLine + "\t\u05F6 (U+05F6)" +
                            Environment.NewLine + "\t\u05F7 (U+05F7)" +
                            Environment.NewLine + "Parameter name: ws",
                            m_lastException.Message);
        }
コード例 #4
0
        public void Load_DuplicateCharacters()
        {
            CoreWritingSystemDefinition ws = m_wsManager.Create("en-US");

            ws.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "a", "a" }
            });
            ws.CharacterSets.Add(new CharacterSetDefinition("numeric")
            {
                Characters = { "4", "4" }
            });
            ws.CharacterSets.Add(new CharacterSetDefinition("punctuation")
            {
                Characters = { "'", "'" }
            });
            ValidCharacters validChars  = ValidCharacters.Load(ws);
            var             validCharsW = new ValidCharsWrapper(validChars);

            Assert.AreEqual(1, validCharsW.WordFormingCharacters.Count);
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("a"));
            Assert.AreEqual(1, validCharsW.NumericCharacters.Count);
            Assert.IsTrue(validCharsW.NumericCharacters.Contains("4"));
            Assert.AreEqual(1, validCharsW.OtherCharacters.Count);
            Assert.IsTrue(validCharsW.OtherCharacters.Contains("'"));
        }
コード例 #5
0
        public void AddCharacter_DuplicateOfOverriddenWordFormingChar()
        {
            CoreWritingSystemDefinition ws = m_wsManager.Create("en-US");

            ws.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "a", "-" }
            });
            ws.CharacterSets.Add(new CharacterSetDefinition("punctuation")
            {
                Characters = { "{" }
            });
            ValidCharacters validChars  = ValidCharacters.Load(ws);
            var             validCharsW = new ValidCharsWrapper(validChars);

            Assert.AreEqual(2, validCharsW.WordFormingCharacters.Count);
            Assert.AreEqual(0, validCharsW.NumericCharacters.Count);
            Assert.AreEqual(1, validCharsW.OtherCharacters.Count);
            Assert.IsTrue(validChars.IsWordForming("-"));
            Assert.IsFalse(validChars.IsWordForming("{"));
            validChars.AddCharacter("-");
            Assert.AreEqual(2, validCharsW.WordFormingCharacters.Count);
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("a"));
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("-"));
            Assert.IsTrue(validChars.IsWordForming("-"));
            Assert.AreEqual(0, validCharsW.NumericCharacters.Count);
            Assert.AreEqual(1, validCharsW.OtherCharacters.Count);
            Assert.IsTrue(validCharsW.OtherCharacters.Contains("{"));
            Assert.IsFalse(validChars.IsWordForming("{"));
        }
コード例 #6
0
        public void SortAfterAddRange()
        {
            CoreWritingSystemDefinition ws         = m_wsManager.Create("en");
            ValidCharacters             validChars = ValidCharacters.Load(ws);

            validChars.AddCharacters(new[] { "z", "c", "t", "b", "8", "7", "6", "5" });
            VerifySortOrder(validChars);
        }
コード例 #7
0
        public void IsWordFormingChar()
        {
            CoreWritingSystemDefinition ws = m_wsManager.Create("en-US");

            ws.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "a", "b", "c", "d", "e", "#" }
            });
            ValidCharacters validChars = ValidCharacters.Load(ws);

            Assert.IsTrue(validChars.IsWordForming('#'));
        }
コード例 #8
0
        public void Load_Empty()
        {
            CoreWritingSystemDefinition ws1        = m_wsManager.Create("en");
            ValidCharacters             validChars = ValidCharacters.Load(ws1);

            Assert.That(validChars.WordFormingCharacters, Is.Empty);
            Assert.That(validChars.OtherCharacters, Is.Empty);
            CoreWritingSystemDefinition ws2 = m_wsManager.Create("en");

            validChars.SaveTo(ws2);
            Assert.That(ws1.ValueEquals(ws2), Is.True);
        }
コード例 #9
0
        public void AddCharacter_SuperscriptedToneNumber()
        {
            CoreWritingSystemDefinition ws         = m_wsManager.Create("en-US");
            ValidCharacters             validChars = ValidCharacters.Load(ws);
            var validCharsW = new ValidCharsWrapper(validChars);

            validChars.AddCharacter("\u00b9");
            validChars.AddCharacter("\u2079");
            Assert.AreEqual(2, validCharsW.WordFormingCharacters.Count);
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("\u00b9"));
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("\u2079"));
            Assert.AreEqual(0, validCharsW.OtherCharacters.Count);
        }
コード例 #10
0
        public void Load_AllowGroupedCombiningDiacritics()
        {
            CoreWritingSystemDefinition ws = m_wsManager.Create("en-US");

            ws.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "a\u0301" }
            });                                                                                                  // combining acute accent
            var validChars = ValidCharacters.Load(ws).WordFormingCharacters.ToList();

            Assert.AreEqual(1, validChars.Count);
            CollectionAssert.Contains(validChars, "a\u0301");
        }
コード例 #11
0
        public void Load_AllowHardLineBreakCharacter()
        {
            CoreWritingSystemDefinition ws1 = m_wsManager.Create("en");

            ws1.CharacterSets.Add(new CharacterSetDefinition("punctuation")
            {
                Characters = { "\u2028" }
            });
            ValidCharacters validChars  = ValidCharacters.Load(ws1);
            var             validCharsW = new ValidCharsWrapper(validChars);

            Assert.AreEqual(1, validCharsW.OtherCharacters.Count);
            Assert.IsTrue(validCharsW.OtherCharacters.Contains("\u2028"));
        }
コード例 #12
0
        public void Load_Empty()
        {
            CoreWritingSystemDefinition ws1        = m_wsManager.Create("en");
            ValidCharacters             validChars = ValidCharacters.Load(ws1, RememberError);
            var validCharsW = new ValidCharsWrapper(validChars);

            Assert.That(validCharsW.WordFormingCharacters, Is.Empty);
            Assert.That(validCharsW.NumericCharacters, Is.Empty);
            Assert.That(validCharsW.OtherCharacters, Is.Empty);
            CoreWritingSystemDefinition ws2 = m_wsManager.Create("en");

            validChars.SaveTo(ws2);
            Assert.That(ws1.ValueEquals(ws2), Is.True);
            Assert.That(m_lastException, Is.Null);
        }
コード例 #13
0
        public void SortAfterAddSingles()
        {
            CoreWritingSystemDefinition ws         = m_wsManager.Create("en");
            ValidCharacters             validChars = ValidCharacters.Load(ws);

            validChars.AddCharacter("z");
            validChars.AddCharacter("c");
            validChars.AddCharacter("t");
            validChars.AddCharacter("b");
            validChars.AddCharacter("8");
            validChars.AddCharacter("7");
            validChars.AddCharacter("6");
            validChars.AddCharacter("5");
            VerifySortOrder(validChars);
        }
コード例 #14
0
        public void Load_AllowMultigraphs()
        {
            CoreWritingSystemDefinition ws1 = m_wsManager.Create("en");

            ws1.CharacterSets.Add(new CharacterSetDefinition("punctuation")
            {
                Characters = { "Ll", "Sch", "Th" }
            });
            var validChars = ValidCharacters.Load(ws1).OtherCharacters.ToList();

            Assert.AreEqual(3, validChars.Count);
            CollectionAssert.Contains(validChars, "Ll");
            CollectionAssert.Contains(validChars, "Sch");
            CollectionAssert.Contains(validChars, "Th");
        }
コード例 #15
0
        public void GetNaturalCharType()
        {
            CoreWritingSystemDefinition ws         = m_wsManager.Create("en-US");
            ValidCharacters             validChars = ValidCharacters.Load(ws);

            Assert.AreEqual(ValidCharacterType.WordForming,
                            ReflectionHelper.GetResult(validChars, "GetNaturalCharType", (int)'a'));
            Assert.AreEqual(ValidCharacterType.WordForming,
                            ReflectionHelper.GetResult(validChars, "GetNaturalCharType", 0x00B2));
            Assert.AreEqual(ValidCharacterType.WordForming,
                            ReflectionHelper.GetResult(validChars, "GetNaturalCharType", 0x2079));
            Assert.AreEqual(ValidCharacterType.Numeric,
                            ReflectionHelper.GetResult(validChars, "GetNaturalCharType", (int)'1'));
            Assert.AreEqual(ValidCharacterType.Other,
                            ReflectionHelper.GetResult(validChars, "GetNaturalCharType", (int)' '));
        }
コード例 #16
0
        public void Load_SingleCompoundBogusCharacter()
        {
            CoreWritingSystemDefinition ws = m_wsManager.Create("en-US");

            ws.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "\u200c\u0301" }
            });

            var validChars = ValidCharacters.Load(ws, RememberError);

            VerifyDefaultWordFormingCharacters(validChars);
            Assert.AreEqual("Invalid ValidChars field while loading the English (United States) writing system. " +
                            "The following characters are invalid:" +
                            Environment.NewLine + "\t\u200c\u0301 (U+200C, U+0301)" +
                            Environment.NewLine + "Parameter name: ws",
                            m_lastException.Message);
        }
コード例 #17
0
        public void Load_SameCharacterInWordFormingAndPunctuationLists()
        {
            CoreWritingSystemDefinition ws = m_wsManager.Create("en-US");

            ws.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "'" }
            });
            ws.CharacterSets.Add(new CharacterSetDefinition("punctuation")
            {
                Characters = { "'" }
            });
            ValidCharacters validChars  = ValidCharacters.Load(ws);
            var             validCharsW = new ValidCharsWrapper(validChars);

            Assert.AreEqual(1, validCharsW.WordFormingCharacters.Count);
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("'"));
            Assert.AreEqual(0, validCharsW.OtherCharacters.Count);
        }
コード例 #18
0
        public void AddCharacter_Duplicate()
        {
            CoreWritingSystemDefinition ws1        = m_wsManager.Create("en-US");
            ValidCharacters             validChars = ValidCharacters.Load(ws1);
            var validCharsW = new ValidCharsWrapper(validChars);

            validChars.AddCharacter("a");
            validChars.AddCharacter("a");
            Assert.AreEqual(1, validCharsW.WordFormingCharacters.Count);
            Assert.IsTrue(validCharsW.WordFormingCharacters.Contains("a"));
            Assert.AreEqual(0, validCharsW.OtherCharacters.Count);
            validChars.SaveTo(ws1);
            CoreWritingSystemDefinition ws2 = m_wsManager.Create("en-US");

            ws2.CharacterSets.Add(new CharacterSetDefinition("main")
            {
                Characters = { "a" }
            });
            Assert.That(ws1.ValueEquals(ws2), Is.True);
        }