public void Should_exclude_duplicate_urls() { var results = new List <ResultInfo>(); results.AddRange(ResultInfoBuilder.GenerateUnique("random", 10)); results.Add(results.Choice().UsingIndex(0)); var sut = new Uniqueness(null); var processed = sut.Process(results); processed.Should().NotBeEmpty() .And.HaveCount(results.Count() - 1); }
public void Matching_text_with_minimum_distance_of_zero_excludes_other_results() { var results = ResultInfoBuilder.GenerateUnique("tests", 10); var expected = results.Choice(); var sut = new FuzzyMatch(new FuzzyMatchSettings { Text = expected.Description }); var processed = sut.Process(results); processed.Should().NotBeEmpty() .And.ContainSingle() .And.ContainEquivalentOf(expected); }
public override Task <IEnumerable <ResultInfo> > SearchAsync(string query) { return(Task.FromResult(_())); IEnumerable <ResultInfo> _() { var originator = Guid.NewGuid().ToString(); var results = _settings.AtLeast.HasValue ? ResultInfoBuilder.GenerateRandom(originator, _settings.AtLeast ?? 1, _settings.Samples) : ResultInfoBuilder.Generate(originator, _settings.Samples); if (Runtime.MaximumResults.HasValue) { results = results.Take((int)Runtime.MaximumResults.Value); } for (ushort i = 0; i < results.Count(); i++) { var result = results.ElementAt(i); yield return(CreateResult(i, result.Url, result.Description)); } } }
public void Should_ordered_by_index() { var results = new List <ResultInfo>(); results.AddRange(ResultInfoBuilder.Generate("Choice1", 3)); results.AddRange(ResultInfoBuilder.Generate("Choice2", 5)); var sut = new Order(null); var processed = sut.Process(results); processed.Should().NotBeEmpty() .And.SatisfyRespectively( item => item.Index.Should().Be(0), item => item.Index.Should().Be(0), item => item.Index.Should().Be(1), item => item.Index.Should().Be(1), item => item.Index.Should().Be(2), item => item.Index.Should().Be(2), item => item.Index.Should().Be(3), item => item.Index.Should().Be(4) ); }