示例#1
0
        public async void Should_fold_descriptions_excluding_query_and_noise()
        {
            var context = new SearchContext();
            await context.SearchAsync("massive repetition");

            var sut = new Improve(new ImproveSettings
            {
                WordCount   = 2,
                NoiseLength = 3
            });

            sut.Context = context;

            var titles = WaffleBuilder.GenerateTitle(3, title => title
                                                     .Intersperse("massive".Replicate(50))
                                                     .Intersperse("catch".Replicate(25))
                                                     .Intersperse("a".Replicate(30))
                                                     .Intersperse("repetition".Replicate(50))
                                                     .Intersperse("word".Replicate(25))
                                                     .Intersperse("of").Replicate(30));

            var results = new ResultInfo[] {
                ResultInfoHelper.OnlyDescription(titles.First()),
                ResultInfoHelper.OnlyDescription(titles.ElementAt(1)),
                ResultInfoHelper.OnlyDescription(titles.ElementAt(2))
            };

            sut.FoldDescriptions(results).Should().NotBeEmpty()
            .And.HaveCount(2)
            .And.BeEquivalentTo("catch", "word");
        }
示例#2
0
        public async void Should_exclude_non_alphanumeric_words()
        {
            var context = new SearchContext();
            await context.SearchAsync("query");

            var titles = WaffleBuilder.GenerateTitle(3);

            var sut = new Improve(new ImproveSettings
            {
                WordCount = (ushort)titles.FlattenOnce().Count()
            });

            sut.Context = context;

            var first = titles.First()
                        .ApplyAt(titles.First().ChoiceOfIndex(), word => word.Mangle())
                        .ApplyAt(titles.First().ChoiceOfIndex(word => word.IsAlphanumeric()), word => word.Mangle());
            var second = titles.ElementAt(1)
                         .ApplyAt(titles.ElementAt(1).ChoiceOfIndex(), word => word.Mangle());

            var results = new ResultInfo[] {
                ResultInfoHelper.OnlyDescription(first),
                ResultInfoHelper.OnlyDescription(second),
                ResultInfoHelper.OnlyDescription(titles.ElementAt(2))
            };

            sut.FoldDescriptions(results).Should().NotBeEmpty()
            .And.OnlyContain(word => word.IsAlphanumeric());
        }
示例#3
0
    public async void Should_fold_descriptions_excluding_query()
    {
        var context = new SearchContext()
                      .With <Improve>(new ImproveSettings
        {
            WordCount = 2
        });
        await context.SearchAsync("massive repetition");

        var sut = (Improve)context.Services.First();

        sut.Context = context;

        var titles = WaffleBuilder.GenerateTitle(3, title => title
                                                 .Intersperse("massive".Replicate(50, separator: " "))
                                                 .Intersperse("something".Replicate(25, separator: " "))
                                                 .Intersperse("repetition".Replicate(50, separator: " "))
                                                 .Intersperse("hello".Replicate(25, separator: " ")));

        var results = new ResultInfo[] {
            ResultInfoHelper.OnlyDescription(titles.First()),
            ResultInfoHelper.OnlyDescription(titles.ElementAt(1)),
            ResultInfoHelper.OnlyDescription(titles.ElementAt(2))
        };

        sut.FoldDescriptions(results).Should().NotBeNullOrEmpty()
        .And.HaveCount(2)
        .And.BeEquivalentTo("something", "hello");
    }
示例#4
0
        public void Should_extract_words_from_a_page()
        {
            var page = WaffleBuilder.GeneratePage(paragraphs: 3);

            var sut   = new Wordify(new WordifySettings());
            var words = sut.ExtractWords(page);

            words.Should().NotBeEmpty()
            .And.OnlyContain(word => word.IsAlphanumeric());
        }
        public void Should_extract_sanitized_text_from_a_page()
        {
            var page = WaffleBuilder.GeneratePage(paragraphs: 3);

            var words = from word in page.TextSelectorAll(
                includeTitle: true, sanitizeText: true).FlattenOnce()
                        where word.Trim().Length > 0
                        select word;

            words.Should().NotBeEmpty()
            .And.OnlyContain(word => word.IsAlphanumeric());
        }
    public void Should_extract_single_tag()
    {
        var body = WaffleBuilder.GenerateParagraph();
        var html = WaffleBuilder.GeneratePageAsString(body);

        var sut = new FetchedDocument(Encoding.UTF8.GetBytes(html));

        var content = sut.ElementSelector("body");

        content.Trim().Should().NotBeNull()
        .And.Be(body.Trim());
    }
    public void Should_extract_multiple_tags()
    {
        var body = WaffleBuilder.GenerateParagraph(samples: 3, small: true);
        var html = WaffleBuilder.GeneratePageAsString(body);

        var sut = new FetchedDocument(Encoding.UTF8.GetBytes(html));

        var contents = sut.ElementSelectorAll("p");

        contents.Should().NotBeNullOrEmpty()
        .And.HaveCount(3);
    }
        public void AddWaffle()
        {
            Waffle standardWaffle = new WaffleBuilder()
                                    .SetTaste("Orange")
                                    .SetWaffleType(WaffleType.American)
                                    .SetName("Standard")
                                    .SetManufacturerName("Mars")
                                    .SetNutritionalValue(5, 10, 15)
                                    .SetPricePerKilogram(100)
                                    .SetStartDate(new DateTime(2020, 2, 3))
                                    .SetSugarContent(60)
                                    .SetWeight(80)
                                    .Build();

            Gift.Add(standardWaffle);
        }