public void ShouldOnlyReturnMatchesForAppropriateField() { var sut = new PrecedingQueryOperator( new FakeQueryPart( ScoredToken(7, ScoredFieldMatch(1D, 1, 8, 20, 100), ScoredFieldMatch(5D, 2, 9, 14)), ScoredToken(8, ScoredFieldMatch(2D, 1, 11, 101), ScoredFieldMatch(6D, 2, 8, 104))), new FakeQueryPart( ScoredToken(7, ScoredFieldMatch(3D, 1, 6, 14, 102)), ScoredToken(8, ScoredFieldMatch(4D, 1, 5, 106), ScoredFieldMatch(7D, 2, 3, 105)))); var results = sut.Evaluate(() => new FakeIndexNavigator(), QueryContext.Empty); // Item 7 matches: // Field 1: 8, 14, 102, 20, 100 // Field 2: None // Item 8 matches: // Field 1: 11, 106, 101 // Field 2: 8, 105, 104 results.Matches.Should().BeEquivalentTo( ScoredToken( 7, ScoredFieldMatch(4D, 1, TokenMatch(8), TokenMatch(14), TokenMatch(20), TokenMatch(100), TokenMatch(102))), ScoredToken( 8, ScoredFieldMatch(6D, 1, TokenMatch(11), TokenMatch(101), TokenMatch(106)), ScoredFieldMatch(13D, 2, TokenMatch(8), TokenMatch(104), TokenMatch(105)))); }
public void ParsingTwoWordsWithPrecedingOperator_ShouldComposeWithPrecedingOperator() { var result = this.Parse("wordone > wordtwo"); var expectedQuery = new PrecedingQueryOperator(new ExactWordQueryPart("wordone"), new ExactWordQueryPart("wordtwo")); VerifyResult(result, expectedQuery); }
public void ShouldOnlyReturnMatchesForAppropriateField() { var sut = new PrecedingQueryOperator( new FakeQueryPart( QueryWordMatch(7, FieldMatch(1, 8, 20, 100), FieldMatch(2, 9, 14)), QueryWordMatch(8, FieldMatch(1, 11, 101), FieldMatch(2, 8, 104))), new FakeQueryPart( QueryWordMatch(7, FieldMatch(1, 6, 14, 102)), QueryWordMatch(8, FieldMatch(1, 5, 106), FieldMatch(2, 3, 105)))); var results = sut.Evaluate(() => new FakeIndexNavigator()); // Item 7 matches: // Field 1: 8, 14, 102, 20, 100 // Field 2: None // Item 8 matches: // Field 1: 11, 106, 101 // Field 2: 8, 105, 104 results.Matches.Should().BeEquivalentTo( QueryWordMatch( 7, new FieldMatch(1, WordMatch(8), WordMatch(14), WordMatch(20), WordMatch(100), WordMatch(102))), QueryWordMatch( 8, new FieldMatch(1, WordMatch(11), WordMatch(101), WordMatch(106)), new FieldMatch(2, WordMatch(8), WordMatch(104), WordMatch(105)))); }