public void ConvertCSVToSDOFormat(string resultDir) { if (Directory.Exists(resultDir)) { FileInfo[] files = new DirectoryInfo(resultDir).GetFiles("*.csv"); if (files.Length != 0) { string path = resultDir + @"\SDO"; if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } int index = 8; int num2 = index + 1; int num3 = num2 + 3; int num4 = num3 + 3; int num5 = num4 + 5; int num6 = 12; double sample = 0.0; foreach (FileInfo info2 in files) { StreamReader reader = null; StreamWriter s = null; Hashtable dH = null; Hashtable hashtable2 = null; ReportElements elements = null; try { reader = info2.OpenText(); string str2 = info2.Name.Replace(".csv", ".yaml"); s = new StreamWriter(path + @"\" + str2); string str3 = reader.ReadLine(); dH = new Hashtable(); elements = new ReportElements(); while (str3 != null) { if (str3 == "End Summary") { break; } if (str3 == string.Empty) { str3 = reader.ReadLine(); } else { string[] strArray = str3.Split(new char[] { '=' }); if (strArray.Length > 1) { string key = strArray[0].Trim(); string str5 = strArray[1].Trim(); if (!dH.ContainsKey(key)) { dH.Add(key, str5); } } else if (strArray.Length == 1) { string str6 = strArray[0].Trim(); if (!dH.ContainsKey(str6)) { dH.Add(str6, "Unknown"); } } str3 = reader.ReadLine(); } } if (dH.Count < 1) { reader.Close(); reader = null; s.Close(); s = null; } else { if (!dH.ContainsKey("Test Data Store")) { dH.Add("Test Data Store", resultDir); } double num8 = 0.0; double num9 = 0.0; if (dH.ContainsKey("Test Description")) { string text1 = (string) dH["Test Description"]; } if (dH.ContainsKey("TTFF 95% Limit|s")) { string str7 = (string) dH["TTFF 95% Limit|s"]; if (str7 == "N/A") { num8 = -9999.0; } else { num8 = Convert.ToDouble(str7); } } if (dH.ContainsKey("2D Position Error 95% Limit|m")) { string str8 = (string) dH["2D Position Error 95% Limit|m"]; if (str8 == "N/A") { num9 = -9999.0; } else { num9 = Convert.ToDouble(str8); } } if (dH.ContainsKey("TTFF Timeout")) { this._timeoutVal = (string) dH["TTFF Timeout"]; } this.prinSDOHeader(s, dH); str3 = reader.ReadLine(); for (str3 = reader.ReadLine(); str3 != null; str3 = reader.ReadLine()) { string[] strArray2 = str3.Split(new char[] { ',' }); double num10 = -9999.0; if (strArray2.Length >= 5) { double num11 = Convert.ToDouble(strArray2[this._ttffReportType]); double num12 = Convert.ToDouble(strArray2[index]); if (num11 <= 0.0) { elements.NumberOfTTFFMisses++; } else if (num11 == Convert.ToDouble(this._timeoutVal)) { elements.NumberOfTTFFMisses++; } else if ((num11 > num8) && (num8 != 0.0)) { elements.NumberOfTTFFOutOfLimits++; } if (num12 <= 0.0) { elements.NumberOf2DMisses++; } if ((num12 > num9) && (num9 != 0.0)) { elements.NumberOf2DOutOfLimits++; } if (num11 <= 0.0) { elements.NumberOfMisses++; } else if (num11 > num8) { elements.NumberOfMisses++; } else if (num12 <= 0.0) { elements.NumberOfMisses++; } else if ((num12 > num9) && (num9 != 0.0)) { elements.NumberOfMisses++; } double num13 = Convert.ToDouble(strArray2[num3]); if (num13 != -9999.0) { num10 = Math.Abs((double) (num13 - Convert.ToDouble(strArray2[num4]))); } elements.TTFFSamples.InsertSample(num11); elements.Position2DErrorSamples.InsertSample(num12); elements.VerticalErrorSamples.InsertSample(num10); for (int i = 0; i < num6; i++) { sample = Convert.ToDouble(strArray2[num5 + i]); if (sample != 0.0) { elements.CNOSamples.InsertSample(sample); } } } } hashtable2 = new Hashtable(); double percentile = elements.TTFFSamples.GetPercentile((double) 95.0, -9999.0); double num16 = elements.TTFFSamples.Stats_Max((double) -9999.0); double num17 = elements.Position2DErrorSamples.GetPercentile((double) 95.0, -9999.0); double num18 = elements.Position2DErrorSamples.Stats_Max((double) -9999.0); double num19 = elements.VerticalErrorSamples.GetPercentile((double) 95.0, -9999.0); double num20 = elements.VerticalErrorSamples.Stats_Max((double) -9999.0); double num21 = elements.CNOSamples.GetPercentile((double) 95.0, -9999.0); double num22 = elements.CNOSamples.Stats_Max((double) -9999.0); string str9 = "Test Result"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt = new SDOStatsElememt(); elememt.Value = "N/A"; hashtable2.Add(str9, elememt); } str9 = "Samples"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt2 = new SDOStatsElememt(); elememt2.Value = elements.TTFFSamples.Samples.ToString("D"); hashtable2.Add(str9, elememt2); } str9 = "Number of Misses TTFF"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt3 = new SDOStatsElememt(); elememt3.Value = elements.NumberOfTTFFMisses.ToString("D"); hashtable2.Add(str9, elememt3); } str9 = "Number of Over Limit TTFF"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt4 = new SDOStatsElememt(); elememt4.Value = elements.NumberOfTTFFOutOfLimits.ToString("D"); hashtable2.Add(str9, elememt4); } str9 = "Number of Misses 2D Position"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt5 = new SDOStatsElememt(); elememt5.Value = elements.NumberOf2DMisses.ToString("D"); hashtable2.Add(str9, elememt5); } str9 = "Number of Over Limit 2D Position"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt6 = new SDOStatsElememt(); elememt6.Value = elements.NumberOf2DOutOfLimits.ToString("D"); hashtable2.Add(str9, elememt6); } str9 = "TTFF 95%|s"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt7 = new SDOStatsElememt(); if (num8 != 0.0) { elememt7.Target = num8.ToString("F2"); elememt7.Comparison = "<"; elememt7.ComparisonResult = (percentile < num8) ? "Pass" : "False"; } elememt7.Value = percentile.ToString("F2"); hashtable2.Add(str9, elememt7); } str9 = "TTFF Max|s"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt8 = new SDOStatsElememt(); elememt8.Value = num16.ToString("F2"); hashtable2.Add(str9, elememt8); } str9 = "2D Position Error 95%|m"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt9 = new SDOStatsElememt(); if (num9 != 0.0) { elememt9.Target = num9.ToString("F2"); elememt9.Comparison = "<"; elememt9.ComparisonResult = (num17 < num9) ? "Pass" : "False"; } elememt9.Value = num17.ToString("F6"); hashtable2.Add(str9, elememt9); } str9 = "2D Position Error Max|m"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt10 = new SDOStatsElememt(); elememt10.Value = num18.ToString("F6"); hashtable2.Add(str9, elememt10); } str9 = "Vertical Position Error 95%|m"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt11 = new SDOStatsElememt(); elememt11.Value = num19.ToString("F6"); hashtable2.Add(str9, elememt11); } str9 = "Vertical Position Error Max|m"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt12 = new SDOStatsElememt(); elememt12.Value = num20.ToString("F6"); hashtable2.Add(str9, elememt12); } str9 = "CNo 95%|dBHz"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt13 = new SDOStatsElememt(); elememt13.Value = num21.ToString("F2"); hashtable2.Add(str9, elememt13); } str9 = "CNo Max|dBHz"; if (!hashtable2.ContainsKey(str9)) { SDOStatsElememt elememt14 = new SDOStatsElememt(); elememt14.Value = num22.ToString("F2"); hashtable2.Add(str9, elememt14); } this.printResultStats(s, hashtable2); reader.Close(); reader = null; s.Close(); s = null; hashtable2.Clear(); hashtable2 = null; } } catch (Exception exception) { if (reader != null) { reader.Close(); reader = null; } if (s != null) { s.Close(); s = null; } if (hashtable2 != null) { hashtable2.Clear(); hashtable2 = null; } if (dH != null) { dH.Clear(); dH = null; } if (elements != null) { elements.Dispose(); dH = null; } throw exception; } } } } }
private void printResultStats(StreamWriter s, Hashtable dH) { if (((s != null) && (dH != null)) && (s != null)) { string path = clsGlobal.InstalledDirectory + @"\Config\sdoHeaderName.cfg"; if (!File.Exists(path)) { path = null; } else { IniHelper helper = new IniHelper(path); List<string> keys = helper.GetKeys("Stats"); s.WriteLine("Test Statistics:"); SDOStatsElememt elememt = new SDOStatsElememt(); if (keys != null) { foreach (string str2 in keys) { elememt.Init(); if (dH.ContainsKey(str2)) { elememt = (SDOStatsElememt) dH[str2]; if (elememt.Target != "N/A") { s.WriteLine(string.Format("\t{0}:", str2)); s.WriteLine(string.Format("\t\t- Target:{0}", elememt.Target)); s.WriteLine(string.Format("\t\t- Result:{0}", elememt.Value)); s.WriteLine(string.Format("\t\t- Comparison:{0}", elememt.Comparison)); s.WriteLine(string.Format("\t\t- Comparison Result:{0}", elememt.ComparisonResult)); } else { s.WriteLine(string.Format("\t{0}:{1}", str2, elememt.Value)); } } } } elememt = null; keys.Clear(); keys = null; helper = null; } } }