public void MultipleDoubleDelimiterTest() { DnaStringParser parser = new DnaStringParser("blah1,, blah2,, blah3, ,, , ", delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 3, "Unexpected number of substrings."); Assert.AreEqual("blah1", substrings[0]); Assert.AreEqual("blah2", substrings[1]); Assert.AreEqual("blah3", substrings[2]); }
public void BasicListTest() { Console.WriteLine("String Parser - BasicListTest"); DnaStringParser parser = new DnaStringParser("blah1, blah2, blah3", delimiter,true,true,true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 3, "Unexpected number of substrings."); Assert.AreEqual("blah1", substrings[0]); Assert.AreEqual("blah2", substrings[1]); Assert.AreEqual("blah3", substrings[2]); }
public void QuotedElementWithProblemCharactersTest() { string param = @"""blah1 &^%£$"", blah5, blah6,"; DnaStringParser parser = new DnaStringParser(param, delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 3, "Unexpected number of substrings."); Assert.AreEqual("blah1 &^%£$", substrings[0]); Assert.AreEqual("blah5", substrings[1]); Assert.AreEqual("blah6", substrings[2]); }
public void QuotedNonQuotedElementMixTest() { string param = @"""blah1"", blah2, blah3, ""blah4"""; DnaStringParser parser = new DnaStringParser(param, delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 4, "Unexpected number of substrings."); Assert.AreEqual("blah1", substrings[0]); Assert.AreEqual("blah2", substrings[1]); Assert.AreEqual("blah3", substrings[2]); Assert.AreEqual("blah4", substrings[3]); }
public void QuotedElementWithSpacesAndCommasTest() { string param = @"""blah1 blah2, blah3 blah4"", blah5, blah6,"; DnaStringParser parser = new DnaStringParser(param, delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 3, "Unexpected number of substrings."); Assert.AreEqual("blah1 blah2 blah3 blah4", substrings[0]); Assert.AreEqual("blah5", substrings[1]); Assert.AreEqual("blah6", substrings[2]); }
public void DuplicateElementCaseWithDoubleDelimitersTest() { DnaStringParser parser = new DnaStringParser("blah1, blah2,, blah3, blah3, , , , ,, BLAH3,, bLah2", delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 5, "Unexpected number of substrings."); Assert.AreEqual("blah1", substrings[0]); Assert.AreEqual("blah2", substrings[1]); Assert.AreEqual("blah3", substrings[2]); Assert.AreEqual("BLAH3", substrings[3]); Assert.AreEqual("bLah2", substrings[4]); }
public void MultipleQuotedElementsTest() { string param = @"""blah1"", ""blah2"""; DnaStringParser parser = new DnaStringParser(param, delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 2, "Unexpected number of substrings."); Assert.AreEqual("blah1", substrings[0]); Assert.AreEqual("blah2", substrings[1]); }
public void DuplicateElementTest() { DnaStringParser parser = new DnaStringParser("blah1, blah2, blah3, blah3", delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 3, "Unexpected number of substrings."); Assert.AreEqual("blah1", substrings[0]); Assert.AreEqual("blah2", substrings[1]); Assert.AreEqual("blah3", substrings[2]); }
public void MixedMultiplicityDelimiterTest() { DnaStringParser parser = new DnaStringParser("blah1, blah2,,, blah3,,,, blah4, blah5,,,, blah6, , blah7, ", delimiter, true, true, true); string[] substrings = parser.Parse(); Assert.AreEqual(substrings.Length, 7, "Unexpected number of substrings."); Assert.AreEqual("blah1", substrings[0]); Assert.AreEqual("blah2", substrings[1]); Assert.AreEqual("blah3", substrings[2]); Assert.AreEqual("blah4", substrings[3]); Assert.AreEqual("blah5", substrings[4]); Assert.AreEqual("blah6", substrings[5]); Assert.AreEqual("blah7", substrings[6]); }
/// <summary> /// Generates an "AND" search query /// </summary> /// <param name="searchQuery">the original search query</param> /// <returns>the search term to pass into the stored proc</returns> public static string GenerateANDSearchQuery(string searchQuery) { char[] delimiters = { ',', ' ' }; DnaStringParser stringparser = new DnaStringParser(searchQuery, delimiters, true, true, false); string[] queries = stringparser.Parse(); return SearchThreadPosts.FormatSearchTerm(ref queries); }
/// <summary> /// Generates an "AND" search query /// </summary> /// <param name="searchQuery">the original search query</param> /// <returns>the search term to pass into the stored proc</returns> private string GenerateANDSearchQuery(string searchQuery) { char[] delimiters = { ',', ' ' }; DnaStringParser stringparser = new DnaStringParser(searchQuery, delimiters,true,true,false); string[] queries = stringparser.Parse(); string search = string.Empty; for (int i = 0; i < queries.GetLength(0) - 1; i++) { search += "\"" + queries[i] + "\"" + " AND "; } search += "\"" + queries[queries.GetLength(0)-1] + "\""; return search; }
/// <summary> /// Generates the SQL Search Query. /// </summary> /// <param name="searchQuery"></param> /// <returns></returns> private string GenerateSearchQuery(string searchQuery) { char[] delimiters = { ',', ' ' }; DnaStringParser stringparser = new DnaStringParser(searchQuery, delimiters,true,true,false); string[] queries = stringparser.Parse(); string search = "isabout("; string comma = " "; foreach (string query in queries) { search += comma + query + " weight (0.5)"; comma = ","; } foreach (string query in queries) { search += comma + "formsof(inflectional, " + query + ") weight(0.25)"; comma = ","; } search += comma + "\"" + searchQuery + "\"" + " weight(1.0)"; search += ")"; return search; }