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());
        }
Example #2
0
        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");
        }
Example #3
0
        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);
        }
Example #4
0
        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");
        }
Example #5
0
        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);
        }
Example #9
0
 public void CheckOddPrefixes(string article, string word, string prefix)
 {
     PAssert.That(() => AvsAn.Query(word).Article == article && AvsAn.Query(word).Prefix == prefix);
 }
Example #10
0
 public void DoTest(string article, string word)
 {
     PAssert.That(() => AvsAn.Query(word).Article == article);
 }