public void MultipleIgnoresWithRuns()
        {
            List <Run> runs = new List <Run>();

            runs.Add(new Run("Some rich text box content"));
            runs.Add(new Run("some rich text bo"));
            runs.Add(new Run("55555 6666"));


            //harder one
            int      callInc = 0;
            RunQueue rq2     = new RunQueue(5);

            QueueTests.FillRunQueue(rq2, runs);
            RunQueue rq2_clone = rq2.Clone();
            RapidFindReplaceControlViewModel model = new RapidFindReplaceControlViewModel();

            model.FindOptions.IgnoreWhitespaceCharacters = true;
            model.ScanQueuedRuns(rq2, "some rich text box",
                                 delegate(Run run, int index, int length)
            {
                Assert.IsTrue(callInc < 1);
                if (callInc == 0)
                {
                    Assert.AreEqual(rq2_clone[0].Run, run);
                    Assert.AreEqual(0, index);
                    Assert.AreEqual(18, length);
                }
                callInc++;
            }
                                 );
        }
        public void IgnoreWhitespaceSplitRuns()
        {
            List <Run> runs = new List <Run>();

            runs.Add(new Run("  a b"));
            runs.Add(new Run(" c"));
            runs.Add(new Run(" stella was here a b "));
            runs.Add(new Run("but not here"));
            runs.Add(new Run("ok she's back a b"));


            //harder one
            int      callInc = 0;
            RunQueue rq2     = new RunQueue(5);

            QueueTests.FillRunQueue(rq2, runs);
            RunQueue rq2_clone = rq2.Clone();
            RapidFindReplaceControlViewModel model = new RapidFindReplaceControlViewModel();

            model.FindOptions.IgnoreWhitespaceCharacters = true;
            model.ScanQueuedRuns(rq2, "abc",
                                 delegate(Run run, int index, int length)
            {
                Assert.IsTrue(callInc < 2);
                if (callInc == 0)
                {
                    Assert.AreEqual(rq2_clone[0].Run, run);
                    Assert.AreEqual(2, index);
                    Assert.AreEqual(3, length);
                }
                if (callInc == 1)
                {
                    Assert.AreEqual(rq2_clone[1].Run, run);
                    Assert.AreEqual(0, index);
                    Assert.AreEqual(2, length);
                }
                callInc++;
            }
                                 );

            callInc = 0;
            model.ScanQueuedRuns(rq2, "a b c",
                                 delegate(Run run, int index, int length)
            {
                Assert.IsTrue(callInc < 2);
                if (callInc == 0)
                {
                    Assert.AreEqual(rq2_clone[0].Run, run);
                    Assert.AreEqual(2, index);
                    Assert.AreEqual(3, length);
                }
                if (callInc == 1)
                {
                    Assert.AreEqual(rq2_clone[1].Run, run);
                    Assert.AreEqual(0, index);
                    Assert.AreEqual(2, length);
                }
                callInc++;
            }
                                 );
        }