public void Add(IContextStatistics stats) { NumRepositories += stats.NumRepositories; NumUsers += stats.NumUsers; NumSolutions += stats.NumSolutions; EstimatedLinesOfCode += stats.EstimatedLinesOfCode; NumTypeDeclTopLevel += stats.NumTypeDeclTopLevel; NumTypeDeclNested += stats.NumTypeDeclNested; NumPartial += stats.NumPartial; NumClasses += stats.NumClasses; NumInterfaces += stats.NumInterfaces; NumDelegates += stats.NumDelegates; NumStructs += stats.NumStructs; NumEnums += stats.NumEnums; NumUnusualType += stats.NumUnusualType; NumTypeDeclExtendsOrImplements += stats.NumTypeDeclExtendsOrImplements; NumMethodDeclsTotal += stats.NumMethodDeclsTotal; NumMethodDeclsOverrideOrImplement += stats.NumMethodDeclsOverrideOrImplement; NumMethodDeclsOverrideOrImplementAsm += stats.NumMethodDeclsOverrideOrImplementAsm; NumValidInvocations += stats.NumValidInvocations; NumUnknownInvocations += stats.NumUnknownInvocations; NumAsmCalls += stats.NumAsmCalls; NumAsmDelegateCalls += stats.NumAsmDelegateCalls; NumAsmFieldRead += stats.NumAsmFieldRead; NumAsmPropertyRead += stats.NumAsmPropertyRead; UniqueTypeDecl.AddAll(stats.UniqueTypeDecl); UniqueMethodDeclsOverrideOrImplementAsm.AddAll(stats.UniqueMethodDeclsOverrideOrImplementAsm); UniqueAssemblies.AddAll(stats.UniqueAssemblies); UniqueAsmMethods.AddAll(stats.UniqueAsmMethods); UniqueAsmFields.AddAll(stats.UniqueAsmFields); UniqueAsmProperties.AddAll(stats.UniqueAsmProperties); }
private void StoreResult(string zip, IContextStatistics stats) { lock (Lock) { _results.Add(stats); _asmCounter.Count(stats.UniqueAssemblies); } }
public void Results(IContextStatistics stats, IDictionary <IAssemblyName, int> counts) { lock (Lock) { Log("done!"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("UniqueTypeDecl.Count: {0}", stats.UniqueTypeDecl.Count); Console.WriteLine( "UniqueMethodDeclsOverrideOrImplementAsm.Count: {0}", stats.UniqueMethodDeclsOverrideOrImplementAsm.Count); Console.WriteLine("UniqueAssemblies.Count: {0}", stats.UniqueAssemblies.Count); Console.WriteLine("UniqueAsmMethods.Count: {0}", stats.UniqueAsmMethods.Count); Console.WriteLine("UniqueAsmFields.Count: {0}", stats.UniqueAsmFields.Count); Console.WriteLine("UniqueAsmProperties.Count: {0}", stats.UniqueAsmProperties.Count); Console.WriteLine(); Console.WriteLine("(clearing sets now ...)"); Console.WriteLine(); stats.UniqueTypeDecl.Clear(); stats.UniqueMethodDeclsOverrideOrImplementAsm.Clear(); stats.UniqueAssemblies.Clear(); stats.UniqueAsmMethods.Clear(); stats.UniqueAsmFields.Clear(); stats.UniqueAsmProperties.Clear(); // getter-only is not printed. Console.WriteLine("NumTypeDeclTotal = {0}", stats.NumTypeDeclTotal); Console.WriteLine( "NumInvocationExprTotal = {0}", stats.NumUnknownInvocations + stats.NumValidInvocations); Console.WriteLine(stats.ToString()); Console.WriteLine("\n## Histogram ##"); for (var i = 1; i < 20; i++) { LogAsms(counts, i); } for (var i = 20; i < 60; i += 2) { LogAsms(counts, i); } for (var i = 60; i <= 150; i += 10) { LogAsms(counts, i); } Console.WriteLine("\n## Assembly Occurrences ##"); foreach (var asm in counts.OrderBy(p => p.Value).Reverse()) { Console.WriteLine("count({0}) = {1}", asm.Key, asm.Value); } } }
public void Run() { _results = new ContextStatistics(); _asmCounter = new AssemblyCounter(); _log.StartUp(_cf); FindZips(); InParallel(CreateStatistics); _log.Results(_results, _asmCounter.Counts); }
protected static void AssertUniqueAsmMethods(IContextStatistics actual, params string[] ids) { Assert.AreEqual(Sets.NewHashSetFrom(ids.Select(id => Names.Method(id))), actual.UniqueAsmMethods); }