public void TestFindEndOffset()
        {
            StringBuilder    text    = new StringBuilder(TEXT);
            IBoundaryScanner scanner = new SimpleBoundaryScanner();

            // test out of range
            int start = TEXT.Length + 1;

            assertEquals(start, scanner.FindEndOffset(text, start));
            start = -1;
            assertEquals(start, scanner.FindEndOffset(text, start));

            start = TEXT.IndexOf("full-", StringComparison.Ordinal);
            int expected = TEXT.IndexOf("\ntext", StringComparison.Ordinal);

            assertEquals(expected, scanner.FindEndOffset(text, start));
        }
        public void TestFindStartOffset()
        {
            StringBuilder    text    = new StringBuilder(TEXT);
            IBoundaryScanner scanner = new SimpleBoundaryScanner();

            // test out of range
            int start = TEXT.Length + 1;

            assertEquals(start, scanner.FindStartOffset(text, start));
            start = 0;
            assertEquals(start, scanner.FindStartOffset(text, start));

            start = TEXT.IndexOf("formance", StringComparison.Ordinal);
            int expected = TEXT.IndexOf("high-performance", StringComparison.Ordinal);

            assertEquals(expected, scanner.FindStartOffset(text, start));

            start    = TEXT.IndexOf("che", StringComparison.Ordinal);
            expected = TEXT.IndexOf("Apache", StringComparison.Ordinal);
            assertEquals(expected, scanner.FindStartOffset(text, start));
        }