public static void AppendIf(this ITextRender output, String content, String prefix = "") { if (content.isNullOrEmpty()) { return; } output.AppendLine(prefix + content); }
public void Report(rangeFinder ranger, ITextRender output, String rangeName, String prefix) { output.AppendLine("Range [" + rangeName + "]"); output.nextTabLevel(); foreach (var pair in ranger.GetDictionary(prefix)) { output.AppendPair(pair.Key, pair.Value.ToString("F3")); } output.prevTabLevel(); }
public void Describe(ITextRender output) { output.AppendLine("Set calls [" + SetCalls + "]"); output.AppendLine("Set prevented [" + SetPrevented + "]"); output.AppendLine("Set saved to file [" + SetSavedToFile + "]"); output.AppendLine("Set already in memory [" + SetAlreadyInMemory + "]"); output.AppendLine("Get calls [" + GetCalls + "]"); output.AppendLine("Get prevented [" + GetPrevented + "]"); output.AppendLine("Get from file [" + GetFromFile + "]"); output.AppendLine("Get from memory [" + GetFromMemory + "]"); }
/// <summary> /// Computes the similarity for the result object /// </summary> /// <param name="result">The result object, previously created with <see cref="Prepare(IEnumerable{HtmlNode}, string, List{string})" /></param> /// <param name="output">The output.</param> /// <param name="documents">Optional: select subset of documents to be analysed. These must be within <see cref="result" /> inner collections</param> /// <returns> /// The same result object specified in parameters /// </returns> public DocumentSimilarityResult ComputeSimilarity(DocumentSimilarityResult result, ITextRender output, List <HtmlNode> documents = null) { if (documents.isNullOrEmpty()) { documents = result.LeafDictionaryByDocuments.Keys.ToList(); } List <ComputeSimilarityTask> tasks = new List <ComputeSimilarityTask>(); for (int i = 0; i < documents.Count - 1; i++) { for (int y = i + 1; y < documents.Count; y++) { ComputeSimilarityTask task = new ComputeSimilarityTask() { documentA = documents[i], documentB = documents[y], nGrams_A = result.NGramsByDocuments[documents[i]], nGrams_B = result.NGramsByDocuments[documents[y]] }; tasks.Add(task); //var documentA = ; //var documentB = documents[y]; //var ABResult = ComputeSimilarity(documentA, documentB, result); //result.AddResult(ABResult); } } var task_chunks = tasks.SplitBySize((tasks.Count / 5)); foreach (var task_chunk in task_chunks) { output.AppendLine("Executing similarity computation task chunk [size:" + task_chunk.Count + "] " + task_chunks.IndexOf(task_chunk) + " of " + task_chunks.Count); Parallel.ForEach <ComputeSimilarityTask>(task_chunk, x => { ComputeSimilarity(x); } ); foreach (var task in task_chunk) { if (task.output != null) { result.AddResult(task.output); } } } return(result); }
/// <summary> /// To the string. /// </summary> /// <param name="output">The output.</param> /// <param name="showNumber">if set to <c>true</c> [show number].</param> /// <param name="format">The format.</param> public virtual void ToString(ITextRender output, Boolean showNumber, String format = "{0,8} : {1}") { foreach (KeyValuePair <int, string> pair in results) { try { if (showNumber) { output.AppendLine(String.Format(format, pair.Key, pair.Value)); } else { output.AppendLine(pair.Value); } } catch (Exception ex) { Thread.Sleep(250); output.AppendLine("--- output broken: " + ex.Message); break; } } }
public void Report(folderNode folder, ITextRender output) { if (output == null) { return; } this.ReportBase(output, false, "TaskSelectionSpanCollection"); foreach (var item in items) { output.AppendLine(item.GetSignature()); item.Report(folder, output); } }
//public static void TakeContent(this IReportDocument document) //{ // base.TakeContent(); // foreach (reportDocument doc in posts) // { // doc.TakeContent(); // } //} public static reportDocument AddChild(this IReportDocument parent, reportDocumentType postType, String title, ITextRender logger = null, String _bid = "") { reportDocument output = new reportDocument(postType) { Title = title, BID = _bid.or(parent.BID), }; if (parent is reportDocument parentReportDocument) { output.parent = parentReportDocument; if (logger != null) { logger.AppendLine("New [" + postType.ToString() + "] [" + title + "] created under [" + parentReportDocument.Title + "]"); } } parent.Children.Add(output); return(output); }
/// <summary> /// Describes the specified output. /// </summary> /// <param name="output">The output.</param> public void Describe(ITextRender output) { output.AppendPair("Current", currentlyUsed.ToString("F2") + "mb", true, ":"); output.AppendLine("Limits N(" + limit_normal.ToString("#,###") + "mb" + ") C(" + limit_critical.ToString("#,###") + ")"); output.AppendPair("Directive", currentMode.ToString(), true, ":"); }
/// <summary> /// REturns count of phrased bank accounts /// </summary> /// <param name="input">The input.</param> /// <param name="output">The output.</param> /// <returns></returns> public Int32 FromString(String input, Boolean onlyUnique = true, ITextRender output = null) { if (input.isNullOrEmpty()) { return(0); } Int32 c_old = this.Count; input = input.Replace("-", ""); input = input.Replace(" ", ""); var lines = input.Split(Environment.NewLine.ToArray(), StringSplitOptions.RemoveEmptyEntries); if (input.Length > digits) { Int32 mod = input.Length % digits; Int32 cnt = input.Length / digits; if (mod == 0) { if (lines.Length == 1) { List <String> splicedLines = new List <string>(); for (int i = 0; i < cnt; i++) { Int32 index = i * digits; splicedLines.Add(input.Substring(index, digits)); } lines = splicedLines.ToArray(); } } } foreach (string ln in lines) { String lnt = ln.Trim(); if (lnt.isNullOrEmpty()) { continue; } if (lnt.Length < 6) { continue; } if (nonNumericCharacters.IsMatch(lnt)) { if (output != null) { output.AppendLine("Line: [" + lnt + "] contains letters. Ignored."); } continue; } var entry = new bankAccountNumber(lnt); AddEntry(entry, onlyUnique); } return(Count - c_old); }
/// <summary> /// Reports the command tree. /// </summary> /// <param name="tree">The tree.</param> /// <param name="output">The output.</param> public static void ReportCommandTree(this commandTree tree, ITextRender output, Boolean paginate, Int32 lastPageLine = 0, aceCommandConsoleHelpOptions option = aceCommandConsoleHelpOptions.full) { output.AppendHeading(tree.name.ToUpper(), 1); output.AppendParagraph(tree.description); if (tree.helpLines.Any()) { output.AppendHeading("Description", 2); foreach (String ln in tree.helpLines) { output.AppendLine(ln); } } if (option.HasFlag(aceCommandConsoleHelpOptions.parameters)) { output.AppendHeading("Properties", 2); foreach (var pair in tree.properties) { output.AppendPair(pair.Value.Name, pair.Value.PropertyType.Name, true, ":"); } output.AppendHorizontalLine(); } if (option.HasFlag(aceCommandConsoleHelpOptions.plugins)) { output.AppendHeading("Plugins", 2); foreach (var pair in tree.plugins) { output.AppendPair(pair.Key.Trim('.'), pair.Value.GetType().Name, true, ":"); var methods = pair.Value.GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public); if (Enumerable.Any <MethodInfo>(methods)) { List <String> lst = new List <string>(); foreach (MemberInfo mInfo in Enumerable.Where <MethodInfo>(methods, x => x.Name.StartsWith(aceMenuItemMeta.METHOD_PREFIX))) { lst.Add(pair.Key.add(mInfo.Name.removeStartsWith(aceMenuItemMeta.METHOD_PREFIX), ".").Trim('.')); } output.AppendList(lst); } } output.AppendHorizontalLine(); } if (option.HasFlag(aceCommandConsoleHelpOptions.modules)) { output.AppendHeading("Modules", 2); foreach (var pair in tree.modules) { output.AppendPair(pair.Value.Name, pair.Value.PropertyType.Name, true, ":"); } output.AppendHorizontalLine(); } //if (option.HasFlag(aceCommandConsoleHelpOptions.brief)) //{ // output.AppendHeading("Overview", 2); // foreach (var pair in tree.flatAccess) // { // output.AppendPair(pair.Value.path.Trim('.'), pair.Value.menuMeta.cmdParams.ToString(false, true, true), true, " "); // } // output.AppendHorizontalLine(); //} if (option.HasFlag(aceCommandConsoleHelpOptions.commands)) { foreach (commandTreeDescription node in tree) { node.ReportCommandNode(output, paginate, lastPageLine); } } }
public static void ReportCommandNode(this commandTreeDescription node, ITextRender output, Boolean paginate, Int32 lastPageLine = 0) { // output.open("div", node.item.name, node.item.description); if (lastPageLine == 0) { lastPageLine = Convert.ToInt32(output.Length); } switch (node.nodeLevel) { case commandTreeNodeLevel.parameter: output.AppendPair(node.path.Trim('.'), node.memberMeta.relevantTypeName); break; case commandTreeNodeLevel.module: output.AppendPair(node.path.Trim('.'), node.memberMeta.relevantTypeName); foreach (commandTreeDescription snode in node) { snode.ReportCommandNode(output, paginate, lastPageLine); } break; case commandTreeNodeLevel.group: output.open("div", "Group: " + node.path.Trim('.'), node.description); foreach (commandTreeDescription snode in node) { snode.ReportCommandNode(output, paginate, lastPageLine); } output.close(); output.AppendHorizontalLine(); break; case commandTreeNodeLevel.plugin: output.open("div", "Plugin: " + node.path.Trim('.'), node.description); foreach (commandTreeDescription tnode in node) { node.ReportCommandNode(output, paginate, lastPageLine); } output.close(); output.AppendHorizontalLine(); break; case commandTreeNodeLevel.type: output.open("div", "Console: " + node.path.Trim('.'), node.description); foreach (commandTreeDescription tnode in node) { node.ReportCommandNode(output, paginate, lastPageLine); } output.close(); output.AppendHorizontalLine(); break; case commandTreeNodeLevel.command: String cTitle = ""; if (node.parent != null) { cTitle = node.parent.path + " [" + node.name.toStringSafe() + "]"; } ReportCommandDesc(node, output, cTitle); if (paginate) { if ((lastPageLine - output.lastLength) >= output.zone.innerBoxedHeight) { lastPageLine = (int)output.lastLength; Paginate(); } } break; } if (node.helpLines.Any()) { output.open("div", "Additional help:"); foreach (String ln in node.helpLines) { output.AppendLine(ln); } output.close(); } if (paginate) { if ((lastPageLine - output.lastLength) >= output.zone.innerBoxedHeight) { lastPageLine = (int)output.lastLength; Paginate(); } } }
/// <summary> /// Gets the clusters by target. /// </summary> /// <param name="result">The result.</param> /// <param name="collectionName">Name of the collection.</param> /// <param name="output">The output.</param> /// <param name="scoreSelector">The score selector.</param> /// <returns></returns> public DocumentClusterCollection GetClustersByTarget(DocumentSimilarityResult result, String collectionName = "Clusters", ITextRender output = null) { List <DocumentClusterCollection> candidates = new List <DocumentClusterCollection>(); List <DocumentClusterCollection> others = new List <DocumentClusterCollection>(); List <Func <DocumentSimilarityResultPair, double> > scoreSelectors = settings.SimilarityScoreSource.GetSelectorList(); if (settings.TargetClusterCount > 0) { var minSimRange = settings.GetMinSimilarityRange(); var minSimScores = minSimRange.GetValueRangeZigZagSteps(settings.TargetSearchSteps); Int32 si = 0; foreach (var minSimScore in minSimScores) { si++; foreach (var scoreSelector in scoreSelectors) { DocumentClusterCollection currentClusters = GetClusters(result, collectionName, scoreSelector, minSimScore); if (output != null) { output.AppendLine($"Clusterization iteration {si}/{minSimScores.Count} with minSimScore: {minSimScore} : Clusters[{currentClusters.Count}] - NullCluster[{currentClusters.NullCluster.items.Count}]"); } if (currentClusters.Count == settings.TargetClusterCount) { if (currentClusters.NullCluster.items.Any()) { candidates.Add(currentClusters); } else { if (output != null) { output.AppendLine($"Match found _{si}/{minSimScores.Count}_ with minSimScore: {minSimScore} : Clusters[{currentClusters.Count}] - NullCluster[{currentClusters.NullCluster.items.Count}]"); } return(currentClusters); } } else { others.Add(currentClusters); } } } if (candidates.Any()) { return(candidates.FirstOrDefault()); } var sorted = others.OrderBy(x => Math.Abs(settings.TargetClusterCount - x.Count)); return(sorted.FirstOrDefault()); } return(GetClusters(result, collectionName, scoreSelectors.First(), settings.MinScoreInRangeCriterion)); }
public void Describe(ITextRender output) { output.AppendLine("Cache Provider [" + instanceID + "]"); memoryWatch.Describe(output); stats.Describe(output); }