public void MatchPredicateWithModifier([IncludeDataSources(true, TestProvName.AllMySqlFullText)] string context, [Values] MySqlExtensions.MatchModifier modifier)
        {
            using (var db = GetDataContext(context))
            {
                var query = db.GetTable <FullTextIndexTest>()
                            .Where(r => Sql.Ext.MySql().Match(modifier, "found", r.TestField1, r.TestField2))
                            .OrderBy(r => r.Id);

                var results = query.ToList();
                Assert.AreEqual(2, results.Count);
                Assert.AreEqual("looking for something?", results[0].TestField1);
                Assert.AreEqual("found it!", results[0].TestField2);
                Assert.AreEqual("record not found", results[1].TestField1);
                Assert.AreEqual("empty", results[1].TestField2);
            }
        }
        public void MatchRelevancePredicateWithModifier([IncludeDataSources(true, TestProvName.AllMySqlFullText)] string context, [Values] MySqlExtensions.MatchModifier modifier)
        {
            using (var db = GetDataContext(context))
            {
                var query = db.GetTable <FullTextIndexTest>()
                            .OrderByDescending(r => Sql.Ext.MySql().MatchRelevance(modifier, "found", r.TestField1, r.TestField2))
                            .Select(r => Sql.Ext.MySql().MatchRelevance(modifier, "found", r.TestField1, r.TestField2));

                var results = query.ToList();
                Assert.AreEqual(3, results.Count);
                if (modifier == MySqlExtensions.MatchModifier.WithQueryExpansion)
                {
                    Assert.Greater(results[0], results[1]);
                }
                else
                {
                    Assert.AreEqual(results[0], results[1]);
                }
                Assert.Greater(results[1], results[2]);
                Assert.AreEqual(0, results[2]);
            }
        }