//----------------------------- PRIVATE MEMBERS ------------------------------ private static ArrayList FilterDistinct(ProcessResultSet processResults) { Hashtable resultSet = new Hashtable(); foreach (ArrayList rps in processResults) { ArrayList row = new ArrayList(); long rowLongHashCode = 0; foreach (ResultPocket rp in rps) { // naf atom dummy results are skipped if (!(rp.fact is FactBase.NegativeFact)) { row.Add(rp.fact); rowLongHashCode ^= rp.fact.GetLongHashCode(); } rowLongHashCode <<= 1; } // add only new rows to perform a "select distinct" if (!resultSet.ContainsKey(rowLongHashCode)) { resultSet.Add(rowLongHashCode, (Fact[])row.ToArray(typeof(Fact))); } } return(new ArrayList(resultSet.Values)); }
private void PrintResults(ProcessResultSet resultSet) { foreach (var result in resultSet.ProcessResults) { Console.WriteLine($"{resultSet.FileName} {result.DateTimeStamp} {result.Value} {resultSet.MedianValue}"); } }
/// <summary> /// Extract all the facts found in process results. /// </summary> /// <param name="processResults">The process results from where facts must be extracted.</param> /// <returns>The array of extracted facts.</returns> public static Fact[] ExtractFacts(ProcessResultSet processResults) { ArrayList facts = new ArrayList(); foreach (ArrayList rps in processResults) { foreach (ResultPocket rp in rps) { // naf atom dummy results are skipped if (!(rp.fact is FactBase.NegativeFact)) { facts.Add(rp.fact); } } } return((Fact[])facts.ToArray(typeof(Fact))); }
//----------------------------- PRIVATE MEMBERS ------------------------------ private static ArrayList FilterDistinct(ProcessResultSet processResults) { Hashtable resultSet = new Hashtable(); foreach(ArrayList rps in processResults) { ArrayList row = new ArrayList(); long rowLongHashCode = 0; foreach(ResultPocket rp in rps) { // naf atom dummy results are skipped if (!(rp.fact is FactBase.NegativeFact)) { row.Add(rp.fact); rowLongHashCode ^= rp.fact.GetLongHashCode(); } rowLongHashCode <<= 1; } // add only new rows to perform a "select distinct" if (!resultSet.ContainsKey(rowLongHashCode)) resultSet.Add(rowLongHashCode, (Fact[])row.ToArray(typeof(Fact))); } return new ArrayList(resultSet.Values); }
/// <summary> /// Extract all the facts found in process results. /// </summary> /// <param name="processResults">The process results from where facts must be extracted.</param> /// <returns>The array of extracted facts.</returns> public static Fact[] ExtractFacts(ProcessResultSet processResults) { ArrayList facts = new ArrayList(); foreach(ArrayList rps in processResults) foreach(ResultPocket rp in rps) // naf atom dummy results are skipped if (!(rp.fact is FactBase.NegativeFact)) facts.Add(rp.fact); return (Fact[])facts.ToArray(typeof(Fact)); }