Example #1
0
        public void GetMarkedClasses_TestHasAttributes_GetsTestType()
        {
            var analyzer = new Analyzer();
            IEnumerable <PerformanceSet> sets = analyzer.GetPerformanceSets((typeof(Test)).Assembly);
            PerformanceSet type = sets.First();

            Assert.IsTrue(type.Name == typeof(Test).Name);
        }
Example #2
0
        /// <summary>
        /// Generic search method.
        /// </summary>
        /// <param name="treeObject">
        /// The tree object.
        /// </param>
        /// <param name="searchItem">
        /// Item we want to search for. Can be string or double.
        /// </param>
        /// <typeparam name="T">
        /// Parameter can be string or double.
        /// </typeparam>
        /// <returns>
        /// Returns list of type int containing path to node, null if not found.
        /// </returns>
        public SearchResult GenericSearch <T>(TreeObject treeObject, T searchItem)
        {
            Stopwatch      watch;
            PerformanceSet performanceSet;
            SearchResult   searchResult;
            string         type;
            var            progress = new string[2];

            if (typeof(T) == typeof(string))
            {
                watch = new Stopwatch();
                watch.Start();
                searchResult = treeObject.TextTree.Contains(searchItem as string);
                watch.Stop();
                type = "text";
            }
            else
            {
                watch = new Stopwatch();
                watch.Start();
                searchResult = treeObject.NumericTree.Contains((double)(object)searchItem);
                watch.Stop();
                type = "numeric";
            }

            if (searchResult.SearchPath != null)
            {
                performanceSet = new PerformanceSet
                {
                    TreeName    = treeObject.Name,
                    SearchTime  = watch.ElapsedMilliseconds.ToString(),
                    TypeOfNodes = this.CheckNodeType(type),
                    TypeOfTree  = this.GetTreeType(treeObject),
                    NoOfNodes   = searchResult.NodesVisited.ToString()
                };
                this.provider.PerformanceSets.Add(performanceSet);
                progress[0] = watch.ElapsedMilliseconds + " ms";
                progress[1] = searchResult.NodesVisited.ToString();
                this.backgroundWorker.ReportProgress(0, progress);
            }
            else
            {
                performanceSet = new PerformanceSet
                {
                    TreeName    = treeObject.Name,
                    SearchTime  = watch.ElapsedMilliseconds + "/Not Found",
                    TypeOfNodes = this.CheckNodeType(type),
                    TypeOfTree  = this.GetTreeType(treeObject),
                    NoOfNodes   = searchResult.NodesVisited.ToString()
                };
                this.provider.PerformanceSets.Add(performanceSet);
                progress[0] = watch.ElapsedMilliseconds + " ms/NF";
                progress[1] = searchResult.NodesVisited.ToString();
                this.backgroundWorker.ReportProgress(0, progress);
            }

            return(searchResult);
        }
Example #3
0
        public void GetMarkedMethods_TestMethodHasAttribute_ReturnstestMethod()
        {
            var analyzer = new Analyzer();
            IEnumerable <PerformanceSet> sets = analyzer.GetPerformanceSets((typeof(Test).Assembly));
            PerformanceSet  set  = sets.First();
            PerformanceUnit unit = set.PerformanceUnits.First();


            Assert.AreEqual("TestMethod", unit.Name);
        }
        public void Build_BuildAnActionFromTypeAndMethodInfo_ReturnsActionThatDoesNotThrow()
        {
            var             analyzer        = new Analyzer();
            PerformanceSet  set             = analyzer.GetPerformanceSets((typeof(Test).Assembly)).First();
            PerformanceUnit performanceUnit = set.PerformanceUnits.First();

            var builder = new DelegateBuilder();

            Action action = builder.Build(set.Type, performanceUnit.MethodInfo);

            Assert.DoesNotThrow(action.Invoke);
        }
Example #5
0
        public void Run_RunsAMarkedMethodOneHundredTimes_ReturnsResultWithOneHundredResults()
        {
            var analyzer = new Analyzer();
            IEnumerable <PerformanceSet> sets = analyzer.GetPerformanceSets((typeof(Test).Assembly));
            PerformanceSet  set  = sets.First();
            PerformanceUnit unit = set.PerformanceUnits.First();

            MethodInfo methodInfo = unit.MethodInfo;

            var    builder = new DelegateBuilder();
            Action action  = builder.Build(set.Type, methodInfo);

            var runner = new UnitRunner();

            Result result = runner.Run(set.Name, methodInfo.Name, action, unit.Runs);

            Assert.IsTrue(result.Success);
        }
Example #6
0
        /// <summary>
        /// The generic batch search.
        /// </summary>
        /// <param name="searchItems">
        /// The search items.
        /// </param>
        /// <param name="type">
        /// The type.
        /// </param>
        /// <typeparam name="T">
        /// Parameter can be string or double.
        /// </typeparam>
        public void GenericBatchSearch <T>(List <T> searchItems, string type)
        {
            this.counter     = 1;
            this.denominator = this.provider.BatchTreeObject.Count * searchItems.Count;

            foreach (var treeObject in this.provider.BatchTreeObject)
            {
                if (!treeObject.Type.Equals(type))
                {
                    continue;
                }

                foreach (var item in searchItems)
                {
                    Stopwatch    watch;
                    SearchResult searchResult;
                    if (type.Equals("text"))
                    {
                        watch = new Stopwatch();
                        watch.Start();
                        searchResult = treeObject.TextTree.Contains(item as string);
                        watch.Stop();
                    }
                    else
                    {
                        watch = new Stopwatch();
                        watch.Start();
                        searchResult = treeObject.NumericTree.Contains((double)(object)item);
                        watch.Stop();
                    }

                    PerformanceSet performanceSet;
                    if (searchResult.SearchPath != null)
                    {
                        performanceSet = new PerformanceSet
                        {
                            TreeName    = treeObject.Name,
                            SearchTime  = watch.ElapsedMilliseconds.ToString(),
                            TypeOfNodes = this.CheckNodeType(type),
                            TypeOfTree  = this.GetTreeType(treeObject),
                            NoOfNodes   = searchResult.NodesVisited.ToString()
                        };
                        this.provider.BatchPerformanceSet.Add(performanceSet);
                        var currentDateTime = DateTime.Now.TimeOfDay.ToString();
                        var progress        = "[" + currentDateTime.Substring(0, 13) + "]" + "\tGroup tree name: "
                                              + treeObject.Name + Environment.NewLine + "\t\tValue: " + item
                                              + Environment.NewLine + "\t\tFound in " + watch.ElapsedMilliseconds
                                              + " ms for tree type: " + this.GetTreeType(treeObject) + Environment.NewLine + "\t\tNodes visited: "
                                              + searchResult.NodesVisited + Environment.NewLine;
                        var percent = (100 * this.counter) / this.denominator;
                        this.backgroundWorker.ReportProgress(percent, progress);
                    }
                    else
                    {
                        performanceSet = new PerformanceSet
                        {
                            TreeName    = treeObject.Name,
                            SearchTime  = watch.ElapsedMilliseconds + "/Not Found",
                            TypeOfNodes = this.CheckNodeType(type),
                            TypeOfTree  = this.GetTreeType(treeObject),
                            NoOfNodes   = searchResult.NodesVisited.ToString()
                        };
                        this.provider.BatchPerformanceSet.Add(performanceSet);
                        var currentDateTime = DateTime.Now.TimeOfDay.ToString();
                        var progress        = "[" + currentDateTime.Substring(0, 13) + "]" + "\tGroup tree name: "
                                              + treeObject.Name + Environment.NewLine + "\t\tValue: " + item
                                              + Environment.NewLine + "\t\tNot found in " + watch.ElapsedMilliseconds
                                              + " ms for tree type: " + this.GetTreeType(treeObject) + Environment.NewLine + "\t\tNodes visited: "
                                              + searchResult.NodesVisited + Environment.NewLine;
                        var percent = (100 * this.counter) / this.denominator;
                        this.backgroundWorker.ReportProgress(percent, progress);
                    }

                    this.counter++;
                }
            }
        }