Ejemplo n.º 1
0
        public void CreateLineInstanceTest()
        {
            var locale   = new Locale("de-DE");
            var text     = "Good-day, kind sir !";
            var expected = new[] { 0, 5, 10, 15, 20 };

            using (var bi = BreakIterator.CreateLineInstance(locale))
            {
                bi.SetText(text);

                Assert.AreEqual(locale, bi.Locale);
                Assert.AreEqual(text, bi.Text);
                CollectionAssert.AreEqual(expected, bi.Boundaries);
            }
        }
Ejemplo n.º 2
0
        public void CreateLineInstanceTest()
        {
            var locale   = new Locale("de-DE");
            var text     = "Good-day, kind sir !";
            var expected = new[] { 0, 5, 10, 15, 20 };

            using (var bi = BreakIterator.CreateLineInstance(locale))
            {
                bi.SetText(text);

                Assert.That(bi.Locale, Is.EqualTo(locale));
                Assert.That(bi.Text, Is.EqualTo(text));
                Assert.That(bi.Boundaries, Is.EquivalentTo(expected));
            }
        }
Ejemplo n.º 3
0
        public void CanIterateBackwards()
        {
            var locale   = new Locale("de-DE");
            var text     = "Good-day, kind sir !";
            var expected = new int[] { 0, 5, 10, 15, 20 };
            // RuleStatus only applies to BreakIterator.UBreakIteratorType.WORD.
            var expectedStatusRuleVector      = new[] { 0 };
            var expectedEmptyRuleStatusVector = new[] { 0 };

            using (var bi = BreakIterator.CreateLineInstance(locale))
            {
                bi.SetText(text);

                CollectionAssert.AreEqual(expected, bi.Boundaries);

                int current         = 0;
                var currentBoundary = expected[current];

                Assert.AreEqual(currentBoundary, bi.Current);
                Assert.AreEqual(0, bi.GetRuleStatus());
                CollectionAssert.AreEqual(expectedStatusRuleVector, bi.GetRuleStatusVector());

                // Increment the index and verify that the next Boundary is correct.
                current++;
                currentBoundary = expected[current];
                Assert.AreEqual(currentBoundary, bi.MoveNext());
                Assert.AreEqual(currentBoundary, bi.Current);
                Assert.AreEqual(0, bi.GetRuleStatus());
                CollectionAssert.AreEqual(expectedStatusRuleVector, bi.GetRuleStatusVector());

                current++;
                currentBoundary = expected[current];
                Assert.AreEqual(currentBoundary, bi.MoveNext());
                Assert.AreEqual(currentBoundary, bi.Current);
                Assert.AreEqual(0, bi.GetRuleStatus());
                CollectionAssert.AreEqual(expectedStatusRuleVector, bi.GetRuleStatusVector());

                current--;
                currentBoundary = expected[current];
                Assert.AreEqual(currentBoundary, bi.MovePrevious());
                Assert.AreEqual(currentBoundary, bi.Current);
                CollectionAssert.AreEqual(expectedStatusRuleVector, bi.GetRuleStatusVector());

                current--;
                currentBoundary = expected[current];
                Assert.AreEqual(currentBoundary, bi.MovePrevious());
                Assert.AreEqual(currentBoundary, bi.Current);
                Assert.AreEqual(0, bi.GetRuleStatus());
                CollectionAssert.AreEqual(expectedStatusRuleVector, bi.GetRuleStatusVector());

                // We've moved past the first word, it should return 0.
                Assert.AreEqual(BreakIterator.DONE, bi.MovePrevious());
                Assert.AreEqual(0, bi.Current);
                Assert.AreEqual(0, bi.GetRuleStatus());
                CollectionAssert.AreEqual(expectedEmptyRuleStatusVector, bi.GetRuleStatusVector());

                // Verify that the element is correct now that we've moved to the end.
                var last = expected.Last();
                Assert.AreEqual(last, bi.MoveLast());
                Assert.AreEqual(last, bi.Current);
                Assert.AreEqual(0, bi.GetRuleStatus());
                CollectionAssert.AreEqual(expectedStatusRuleVector, bi.GetRuleStatusVector());
            }
        }
Ejemplo n.º 4
0
 private BreakIterator GetLineInstance(System.Globalization.CultureInfo locale)
 {
     return(BreakIterator.CreateLineInstance(new Locale(locale.Name)));
 }