private string GetTextFromArgTypes() { StringBuilder description = new StringBuilder(); int counter = 0; var paras = Method.Parameters; if (paras.Count() == 1) { var typeName = paras.ElementAt(0).VariableType.ToString(); AvsAn.Result r = AvsAn.Query(typeName); description.Append(r.Article + " " + typeName); } else { foreach (var arg in paras) { description.Append(arg.VariableType.ToString()); if (counter + 2 == paras.Count()) { description.Append(" and "); } else { description.Append(", "); } counter++; } } return(description.ToString()); }
static void Main() { Process.GetCurrentProcess().PriorityClass = ProcessPriorityClass.High; Thread.CurrentThread.Priority = ThreadPriority.Highest; var benchdict = Dictionaries.LoadEnglishDictionary(); for (var i = 0; i < benchdict.Length; i++) { //deterministically shuffle to avoid over-friendliness to the branch-predictor var otherI = (i * 13379L + 42) % benchdict.Length; var tmp = benchdict[i]; benchdict[i] = benchdict[otherI]; benchdict[otherI] = tmp; } var borkedWords = benchdict.Select(w => new string(w.Reverse().ToArray())).ToArray(); long sum = 0; var sw = Stopwatch.StartNew(); var _ = AvsAn.Query("example").Article; var init = sw.Elapsed; Console.WriteLine("initialization took " + init.TotalMilliseconds); sw.Restart(); const int iters = 200; for (var k = 0; k < iters; k++) { foreach (var word in benchdict) { sum += AvsAn.Query(word).Article == "an" ? 1 : 0; } foreach (var word in borkedWords) { sum += AvsAn.Query(word).Article == "an" ? 1 : 0; } } var duration = sw.Elapsed.TotalMilliseconds; var clockrateMHz = new ManagementObjectSearcher(new ObjectQuery("SELECT CurrentClockSpeed FROM Win32_Processor")).Get() .Cast <ManagementObject>() .Select(mo => Convert.ToDouble(mo["CurrentClockSpeed"])) .Max(); Console.WriteLine($"{sum} / {benchdict.Length} / {iters} / 2 ({(double)sum / benchdict.Length / iters / 2}) an rate."); var microseconds = duration / benchdict.Length / 2 / iters * 1000.0; Console.WriteLine(microseconds * 1000.0 + " nanoseconds per lookup"); Console.WriteLine(clockrateMHz * microseconds + " cycles per lookup @ " + clockrateMHz + "MHz"); Console.WriteLine("took " + duration + "ms"); }
private static string ReplaceTextWithAOrAn(TemplateInText templateInText) { if (templateInText.TemplateIndex + 5 >= templateInText.Text.Length) { return("a"); } string wordAfterTemplate = GetNextWord(templateInText.Text, templateInText.TemplateIndex + 5); var result = AvsAn.Query(wordAfterTemplate); return(result.Article); }
static void Main() { var words = Dictionaries.LoadEnglishDictionary(); var borkedWords = words.Select(w => new string(w.Reverse().ToArray())).ToArray(); for (var i = 0; i < words.Length; i++) { //deterministically shuffle to avoid over-friendliness to the branch-predictor var otherI = (i * 13379L + 42) % words.Length; var tmp = words[i]; words[i] = words[otherI]; words[otherI] = tmp; } long sum = 0; var sw = Stopwatch.StartNew(); var _ = AvsAn.Query("example").Article; var init = sw.Elapsed; Console.WriteLine("initialization took " + init.TotalMilliseconds); sw.Restart(); const int iters = 100; for (var k = 0; k < iters; k++) { foreach (string word in words) { sum += AvsAn.Query(word).Article == "an" ? 1 : 0; } foreach (string word in borkedWords) { sum += AvsAn.Query(word).Article == "an" ? 1 : 0; } } var duration = sw.Elapsed.TotalMilliseconds; var clockrateMHz = new ManagementObjectSearcher(new ObjectQuery("SELECT CurrentClockSpeed FROM Win32_Processor")).Get() .Cast <ManagementObject>() .Select(mo => Convert.ToDouble(mo["CurrentClockSpeed"])) .Max(); Console.WriteLine(sum + " / " + words.Length + " (" + (double)sum / words.Length / iters / 2 + ") an rate."); var microseconds = duration / (words.Length + borkedWords.Length) / iters * 1000.0; Console.WriteLine(microseconds * 1000.0 + " nanoseconds per lookup"); Console.WriteLine(clockrateMHz * microseconds + " cycles per lookup @ " + clockrateMHz + "MHz"); Console.WriteLine("took " + duration + "ms"); }
static void Main(string[] args) { var words = File.ReadAllLines(@"..\..\..\AvsAn-Test\354984si.ngl").Where(w => w != "").ToArray(); long sum = 0; Stopwatch sw = Stopwatch.StartNew(); var _ = AvsAn.Query("example").Article; var init = sw.Elapsed; Console.WriteLine("initialization took " + init.TotalMilliseconds); sw.Restart(); const int iters = 200; for (var k = 0; k < iters; k++) { for (var i = 0; i < words.Length; i++) { sum += AvsAn.Query(words[i]).Article == "an" ? 1 : 0; } for (var i = words.Length - 1; i >= 0; i--) { sum += AvsAn.Query(words[i]).Article == "an" ? 1 : 0; } } var duration = sw.Elapsed.TotalMilliseconds; var clockrateMHz = new ManagementObjectSearcher(new ObjectQuery("SELECT CurrentClockSpeed FROM Win32_Processor")).Get() .Cast <ManagementObject>().Select(mo => Convert.ToDouble(mo["CurrentClockSpeed"])).Max(); Console.WriteLine(sum + " / " + words.Length + " (" + ((double)sum / words.Length / iters / 2) + ") an rate."); var microseconds = duration / words.Length / iters / 2 * 1000.0; Console.WriteLine(microseconds * 1000.0 + " nanoseconds per lookup"); Console.WriteLine(clockrateMHz * microseconds + " cycles per lookup @ " + clockrateMHz + "MHz"); Console.WriteLine("took " + duration + "ms"); }
public void NumberClassifications() { var numbers = Dictionaries.SmallNumberStrings(); var mappedNumbers = string.Join("\n", numbers.Select(word => word + " => " + AvsAn.Query(word).Article)); MyApprove(mappedNumbers); }
public void DictionaryClassifications() { var dictionary = Dictionaries.LoadEnglishDictionary(); var mappedDictionary = string.Join("\n", dictionary.Select(word => word + " => " + AvsAn.Query(word).Article)); MyApprove(mappedDictionary); }
public void AcronymClassifications() { var mappedAcronyms = string.Join("\n", Dictionaries.AcronymsWithUpto4Letters().Select(word => word + " => " + AvsAn.Query(word).Article)); MyApprove(mappedAcronyms); }
public void CheckOddPrefixes(string article, string word, string prefix) { PAssert.That(() => AvsAn.Query(word).Article == article && AvsAn.Query(word).Prefix == prefix); }
public void DoTest(string article, string word) { PAssert.That(() => AvsAn.Query(word).Article == article); }