示例#1
0
        public void CanCompareTwoModels()
        {
            var worker = new StringTagsWorker(
                new[]
            {
                "a", "b", "ab", "cdf", "u"
            },
                "u");
            var etalon = worker.Parser.Parse("<a>1</a> <b>2</b>  <ab>3</ab>, <cdf><a>4</a></cdf> <a>5</a>");
            var actual = worker.Parser.Parse("<a>1</a> <b>2</b>  <ab>3</ab>, <cdf>4</cdf> 5");
            var result = actual.Tags.CompareTo(
                etalon.Tags,
                TagsMatchers <string> .Strict,
                worker.Values,
                worker.Undefined);

            result.Render().ToConsole();
            //1) <a>4</a> expected but <cdf>4<cdf> was found
            //2) <a>5</a> expected but <null> was found
            result.Mismatches["a"].Count.AssertEqualTo(2);
            result.Mismatches["a"][0].ExpectedType.AssertEqualTo("a");
            result.Mismatches["a"][0].ActualType.AssertEqualTo("cdf");
            result.Mismatches["a"][1].ExpectedType.AssertEqualTo("a");
            result.Mismatches["a"][1].ActualType.AssertEqualTo("u");
            result.Mismatches["a"][1].Actual.AssertEqualTo(null);
        }
示例#2
0
        public void StringExample()
        {
            var worker = new StringTagsWorker(
                tagsNames: new[] { "Org", "Geo", "Per", "O" }
                , undefinedTagName: "O");
            var expected = worker.Parser.Parse("<Per>Jack</Per> finally visited <Org>McDonald's</Org>, then was sent to the <Geo>Hospital</Geo>.");
            var actual   = worker.Parser.Parse("<Per>Jack</Per> finally visited <Per>McDonald's</Per>, then was <Org>sent</Org> to the Hospital.");
            var report   = actual.Tags.CompareTo(expected.Tags, TagsMatchers <string> .Strict, worker.Values, worker.Undefined);

            Console.WriteLine(report.Render());

            var text = actual.ClearedText;

            Console.WriteLine(report.RenderMatchesAndMismatches(t => text.Substring(t.Begin, t.End - t.Begin)));
        }
示例#3
0
        public void CanParseText()
        {
            var worker = new StringTagsWorker(
                new[]
            {
                "a", "b", "ab", "cdf"
            },
                "a");
            var result = worker.Parser.Parse("<a>1</a> <b>2</b>  <ab>3</ab>, <cdf><a>4</a></cdf>");
            var tags   = result.Tags;

            tags.Count.AssertEqualTo(5);
            tags[0].Type.AssertEqualTo("a");
            tags[1].Type.AssertEqualTo("b");
            tags[2].Type.AssertEqualTo("ab");
            result.ClearedText.Substring(tags[3].Begin, tags[3].End - tags[3].Begin).AssertEqualTo("4");
        }