Ejemplo n.º 1
0
        public static IEnumerable <object[]> GetBreakTestCases()
        {
            return(new[]
            {
                GenerateTestCases("Pln Text"),
                GenerateTestCases("AB జోCD"),
                GenerateTestCases("Abజో Tt"),
                GenerateTestCases("Ab జో Tt"),
            }.SelectMany(it => it));

            IEnumerable <object[]> GenerateTestCases(string testString)
            {
                var graphemes = GraphemeHelper.GetGraphemes(testString).ToArray();

                for (int i = 0; i < graphemes.Length; i++)
                {
                    var left  = string.Join("", graphemes.Take(i));
                    var right = string.Join("", graphemes.Skip(i));

                    yield return(new object[]
                    {
                        left + right,
                        i,
                        left,
                        right
                    });
                }
            }
        }
        public void VerifyGraphemeHelperLength(int index, int expectedLength)
        {
            var text = "a\u0304\u0308bc\u0327";

            int length = GraphemeHelper.GetGraphemeLength(text, index);

            DidYouKnow.That(length).Should().Be(expectedLength);
        }
Ejemplo n.º 3
0
        public static IEnumerable <object[]> DeleteCharacterTestCases()
        {
            string text      = "TheజోWord";
            var    graphemes = GraphemeHelper.GetGraphemes(text).ToArray();

            // we start at 0 and go up to length (but not including) because we're deleting the next
            // character.
            for (int i = 0; i < graphemes.Length; i++)
            {
                var deleteIndex = i;
                var expected    = string.Join("", graphemes.Where((_, index) => index != deleteIndex));
                yield return(new object[]
                {
                    text,
                    deleteIndex,
                    expected
                });
            }
        }