From 8ee374b2a8b77f736f9e4a9a0b501cf6fd55843b Mon Sep 17 00:00:00 2001 From: "phares@iscn5cg20977xq" Date: Tue, 2 Dec 2025 08:32:55 -0700 Subject: [PATCH] Refactor ProcessDataStandardFormat and add unit tests for v2.61.1 - Updated GetPDSFText method to accept nullable logisticsText parameter. - Removed unused TryGetPropertyIndex method from ProcessDataStandardFormat. - Introduced new unit tests for CreateSelfDescription and Extract functionalities in version 2.61.1. - Implemented logging and file handling in the test classes to ensure proper setup and teardown. --- .../FileHandlers/TIBCO/Transport/Job.cs | 101 ++- Adaptation/FileHandlers/txt/Constant.cs | 2 + Adaptation/FileHandlers/txt/Header.cs | 5 +- Adaptation/FileHandlers/txt/Summary.cs | 785 ++++++++++++------ .../Shared/ProcessDataStandardFormat.cs | 29 +- .../Production/v2.61.1/TBI01.cs | 65 ++ .../Extract/Production/v2.61.1/TBI01.cs | 58 ++ 7 files changed, 739 insertions(+), 306 deletions(-) create mode 100644 Adaptation/_Tests/CreateSelfDescription/Production/v2.61.1/TBI01.cs create mode 100644 Adaptation/_Tests/Extract/Production/v2.61.1/TBI01.cs diff --git a/Adaptation/FileHandlers/TIBCO/Transport/Job.cs b/Adaptation/FileHandlers/TIBCO/Transport/Job.cs index 8d73907..ba6bf5b 100644 --- a/Adaptation/FileHandlers/TIBCO/Transport/Job.cs +++ b/Adaptation/FileHandlers/TIBCO/Transport/Job.cs @@ -719,23 +719,90 @@ public partial class Job private static string GetCommandText(CommonB commonB, string jobNames) { // cSpell:disable List results = new(); - results.Add(" select count(distinct(se.f_sgrp)) count_se_sgrp "); - results.Add(" from [spcepiworld].[dbo].[sgrp_ext] se "); - results.Add(" join [spcepiworld].[dbo].[prcs_dat] pr "); - results.Add(" on se.f_prcs = pr.f_prcs "); - results.Add(" join [spcepiworld].[dbo].[job_dat] jd "); - results.Add(" on se.f_job = jd.f_job "); - results.Add(" join [spcepiworld].[dbo].[part_lot] pl "); - results.Add(" on se.f_lot = pl.f_lot "); - results.Add(" join [spcepiworld].[dbo].[part_dat] pd "); - results.Add(" on se.f_part = pd.f_part "); - results.Add(" join [spcepiworld].[dbo].[test_dat] td "); - results.Add(" on se.f_test = td.f_test "); - results.Add(" where se.f_flag = 0 "); - results.Add($" and pl.f_name = '{commonB.RDSNumber}' "); - results.Add($" and pr.f_name = '{commonB.ReactorNumber}' "); - results.Add($" and pd.f_name = '{commonB.PSN}' "); - results.Add($" and jd.f_name in ({jobNames}) "); + results.Add(" select count(1) "); + results.Add(" from ( "); + results.Add(" select [sid] "); + results.Add(" , [lot] "); + results.Add(" , [process] "); + results.Add(" , [part] "); + results.Add(" , [job] "); + results.Add(" , ( "); + results.Add(" select min(concat( "); + results.Add(" case when sd.f_dsgp = 1729787380 /* CDE SetupFile */ "); + results.Add(" then ds.f_name "); + results.Add(" else '' "); + results.Add(" end, "); + results.Add(" case when sd.f_dsgp = 1657296864 /* CDE Pattern */ "); + results.Add(" then ds.f_name "); + results.Add(" else '' "); + results.Add(" end, "); + results.Add(" case when sd.f_dsgp = 1655312695 /* BioRad, BioRad Stratus, CDE, SP1, TBI and Tencor - Recipe */ "); + results.Add(" then ds.f_name "); + results.Add(" else '' "); + results.Add(" end)) "); + results.Add(" from [spcepiworld].[dbo].[sgrp_dsc] sd "); + results.Add(" join [spcepiworld].[dbo].[desc_dat] ds "); + results.Add(" on sd.f_desc = ds.f_desc "); + results.Add(" where [sid] = sd.f_sgrp "); + results.Add(" and sd.f_dsgp in (1729787380, 1657296864, 1655312695) "); + results.Add(" ) [min recipe] "); + results.Add(" , ( "); + results.Add(" select max(concat( "); + results.Add(" case when sd.f_dsgp = 1729787380 /* CDE SetupFile */ "); + results.Add(" then ds.f_name "); + results.Add(" else '' "); + results.Add(" end, "); + results.Add(" case when sd.f_dsgp = 1657296864 /* CDE Pattern */ "); + results.Add(" then ds.f_name "); + results.Add(" else '' "); + results.Add(" end, "); + results.Add(" case when sd.f_dsgp = 1655312695 /* BioRad, BioRad Stratus, CDE, SP1, TBI and Tencor - Recipe */ "); + results.Add(" then ds.f_name "); + results.Add(" else '' "); + results.Add(" end)) "); + results.Add(" from [spcepiworld].[dbo].[sgrp_dsc] sd "); + results.Add(" join [spcepiworld].[dbo].[desc_dat] ds "); + results.Add(" on sd.f_desc = ds.f_desc "); + results.Add(" where [sid] = sd.f_sgrp "); + results.Add(" and sd.f_dsgp in (1729787380, 1657296864, 1655312695) "); + results.Add(" ) [max recipe] "); + results.Add(" from ( "); + results.Add(" select se.f_sgrp [sid] "); + results.Add(" , pl.f_name [lot] "); + results.Add(" , pr.f_name [process] "); + results.Add(" , pd.f_name [part] "); + results.Add(" , jd.f_name [job] "); + results.Add(" from [spcepiworld].[dbo].[sgrp_ext] se "); + results.Add(" join [spcepiworld].[dbo].[prcs_dat] pr "); + results.Add(" on se.f_prcs = pr.f_prcs "); + results.Add(" join [spcepiworld].[dbo].[job_dat] jd "); + results.Add(" on se.f_job = jd.f_job "); + results.Add(" join [spcepiworld].[dbo].[part_lot] pl "); + results.Add(" on se.f_lot = pl.f_lot "); + results.Add(" join [spcepiworld].[dbo].[part_dat] pd "); + results.Add(" on se.f_part = pd.f_part "); + results.Add(" join [spcepiworld].[dbo].[test_dat] td "); + results.Add(" on se.f_test = td.f_test "); + results.Add(" where se.f_flag = 0 "); + results.Add($" and pl.f_name = '{commonB.RDSNumber}' "); + results.Add($" and pr.f_name = '{commonB.ReactorNumber}' "); + results.Add($" and pd.f_name = '{commonB.PSN}' "); + results.Add($" and jd.f_name in ({jobNames}) "); + results.Add(" group by se.f_sgrp "); + results.Add(" , se.f_sgtm "); + results.Add(" , pl.f_name "); + results.Add(" , pr.f_name "); + results.Add(" , pd.f_name "); + results.Add(" , jd.f_name "); + results.Add(" ) iq "); + results.Add(" ) iq "); + results.Add(" group by [lot] "); + results.Add(" , [process] "); + results.Add(" , [part] "); + results.Add(" , [job] "); + results.Add(" , [min recipe] "); + results.Add(" , [max recipe] "); + results.Add(" ; "); return string.Join(Environment.NewLine, results); } // cSpell:restore diff --git a/Adaptation/FileHandlers/txt/Constant.cs b/Adaptation/FileHandlers/txt/Constant.cs index e5a87c3..8433695 100644 --- a/Adaptation/FileHandlers/txt/Constant.cs +++ b/Adaptation/FileHandlers/txt/Constant.cs @@ -17,6 +17,8 @@ internal class Constant public string Reject { get; } = "F Reject"; public string LongWaferSummary { get; } = "Long Wafer Summary"; public string OverLoad { get; } = "F OverLoad"; + public string ShortWaferSummary { get; } = "Short Wafer Summary"; public string Empty35Spaces { get; } = " "; + public string FormatExceptionMessage { get; } = "Wafer Summary section is neither Short nor Long format."; } \ No newline at end of file diff --git a/Adaptation/FileHandlers/txt/Header.cs b/Adaptation/FileHandlers/txt/Header.cs index 9aeaf53..5a449bb 100644 --- a/Adaptation/FileHandlers/txt/Header.cs +++ b/Adaptation/FileHandlers/txt/Header.cs @@ -69,7 +69,10 @@ public class Header Header result; string lot; string session; - ScanPast(text, i, constant.LongWaferSummary); + if (!text.Contains(constant.ShortWaferSummary)) + ScanPast(text, i, constant.LongWaferSummary); + else + ScanPast(text, i, constant.ShortWaferSummary); _ = GetToEOL(text, i); ScanPast(text, i, constant.Session); session = GetToEOL(text, i, true); diff --git a/Adaptation/FileHandlers/txt/Summary.cs b/Adaptation/FileHandlers/txt/Summary.cs index 0fe7452..26abf21 100644 --- a/Adaptation/FileHandlers/txt/Summary.cs +++ b/Adaptation/FileHandlers/txt/Summary.cs @@ -765,27 +765,43 @@ public class Summary waferSummaryInfo.WaferID = segments[1]; waferSummaryInfo.Grade = segments[2]; waferSummaryInfo.SrcDest = segments[3]; - if (segments.Length > 4) + if (segments.Length > 8) { - waferSummaryInfo.Lpd = segments[5]; - waferSummaryInfo.LpdN = segments[6]; - waferSummaryInfo.LpdES = segments[7]; - waferSummaryInfo.MicroScr = segments[8]; - waferSummaryInfo.Scr = segments[9]; - waferSummaryInfo.Slip = segments[10]; - waferSummaryInfo.AreaNum = segments[11]; - waferSummaryInfo.Area = segments[12]; - waferSummaryInfo.HazeAvg = segments[13]; - waferSummaryInfo.HazeMedian = segments[14]; - waferSummaryInfo.HazeStdDev = segments[15]; - waferSummaryInfo.Bin1 = segments[16]; - waferSummaryInfo.Bin2 = segments[17]; - waferSummaryInfo.Bin3 = segments[18]; - waferSummaryInfo.Bin4 = segments[19]; - waferSummaryInfo.Bin5 = segments[20]; - waferSummaryInfo.Bin6 = segments[21]; - waferSummaryInfo.Bin7 = segments[22]; - waferSummaryInfo.Bin8 = segments[23]; + if (text.Contains(constant.ShortWaferSummary)) + { + waferSummaryInfo.Lpd = segments[5]; + waferSummaryInfo.LpdN = segments[6]; + waferSummaryInfo.LpdES = segments[7]; + waferSummaryInfo.MicroScr = segments[8]; + waferSummaryInfo.Scr = segments[9]; + waferSummaryInfo.Slip = segments[10]; + waferSummaryInfo.AreaNum = segments[11]; + waferSummaryInfo.Area = segments[12]; + } + else if (text.Contains(constant.LongWaferSummary)) + { + waferSummaryInfo.Lpd = segments[5]; + waferSummaryInfo.LpdN = segments[6]; + waferSummaryInfo.LpdES = segments[7]; + waferSummaryInfo.MicroScr = segments[8]; + waferSummaryInfo.Scr = segments[9]; + waferSummaryInfo.Slip = segments[10]; + waferSummaryInfo.AreaNum = segments[11]; + waferSummaryInfo.Area = segments[12]; + waferSummaryInfo.HazeAvg = segments[13]; + waferSummaryInfo.HazeMedian = segments[14]; + waferSummaryInfo.HazeStdDev = segments[15]; + waferSummaryInfo.Bin1 = segments[16]; + waferSummaryInfo.Bin2 = segments[17]; + waferSummaryInfo.Bin3 = segments[18]; + waferSummaryInfo.Bin4 = segments[19]; + waferSummaryInfo.Bin5 = segments[20]; + waferSummaryInfo.Bin6 = segments[21]; + waferSummaryInfo.Bin7 = segments[22]; + waferSummaryInfo.Bin8 = segments[23]; + } + else + throw new Exception(constant.FormatExceptionMessage); } if (waferSummaryInfo.WaferID == "-1") { @@ -858,246 +874,495 @@ public class Summary Header.ScanPast(text, i, constant.StdDev); dnnTotalsStandardDevSegments = Header.GetToEOL(text, i).Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); } - result = new(dcnAllMin: dncTotalsMinSegments[0], - dcnLpdMin: dncTotalsMinSegments[1], - dcnLpdNMin: dncTotalsMinSegments[2], - dcnLpdESMin: dncTotalsMinSegments[3], - dcnMicroScrMin: dncTotalsMinSegments[4], - dcnScrMin: dncTotalsMinSegments[5], - dcnSlipMin: dncTotalsMinSegments[6], - dcnAreaCountMin: dncTotalsMinSegments[7], - dcnAreaMin: dncTotalsMinSegments[8], - dcnHazeAvgMin: dncTotalsMinSegments[9], - dcnHazeMedianMin: dncTotalsMinSegments[10], - dcnHazeStdDevMin: dncTotalsMinSegments[11], - dcnBin1Min: dncTotalsMinSegments[12], - dcnBin2Min: dncTotalsMinSegments[13], - dcnBin3Min: dncTotalsMinSegments[14], - dcnBin4Min: dncTotalsMinSegments[15], - dcnBin5Min: dncTotalsMinSegments[16], - dcnBin6Min: dncTotalsMinSegments[17], - dcnBin7Min: dncTotalsMinSegments[18], - dcnBin8Min: dncTotalsMinSegments[19], - dcnAllMax: dncTotalsMaxSegments[0], - dcnLpdMax: dncTotalsMaxSegments[1], - dcnLpdNMax: dncTotalsMaxSegments[2], - dcnLpdESMax: dncTotalsMaxSegments[3], - dcnMicroScrMax: dncTotalsMaxSegments[4], - dcnScrMax: dncTotalsMaxSegments[5], - dcnSlipMax: dncTotalsMaxSegments[6], - dcnAreaCountMax: dncTotalsMaxSegments[7], - dcnAreaMax: dncTotalsMaxSegments[8], - dcnHazeAvgMax: dncTotalsMaxSegments[9], - dcnHazeMedianMax: dncTotalsMaxSegments[10], - dcnHazeStdDevMax: dncTotalsMaxSegments[11], - dcnBin1Max: dncTotalsMaxSegments[12], - dcnBin2Max: dncTotalsMaxSegments[13], - dcnBin3Max: dncTotalsMaxSegments[14], - dcnBin4Max: dncTotalsMaxSegments[15], - dcnBin5Max: dncTotalsMaxSegments[16], - dcnBin6Max: dncTotalsMaxSegments[17], - dcnBin7Max: dncTotalsMaxSegments[18], - dcnBin8Max: dncTotalsMaxSegments[19], - dcnAllMean: dncTotalsMeanSegments[0], - dcnLpdMean: dncTotalsMeanSegments[1], - dcnLpdNMean: dncTotalsMeanSegments[2], - dcnLpdESMean: dncTotalsMeanSegments[3], - dcnMicroScrMean: dncTotalsMeanSegments[4], - dcnScrMean: dncTotalsMeanSegments[5], - dcnSlipMean: dncTotalsMeanSegments[6], - dcnAreaCountMean: dncTotalsMeanSegments[7], - dcnAreaMean: dncTotalsMeanSegments[8], - dcnHazeAvgMean: dncTotalsMeanSegments[9], - dcnHazeMedianMean: dncTotalsMeanSegments[10], - dcnHazeStdDevMean: dncTotalsMeanSegments[11], - dcnBin1Mean: dncTotalsMeanSegments[12], - dcnBin2Mean: dncTotalsMeanSegments[13], - dcnBin3Mean: dncTotalsMeanSegments[14], - dcnBin4Mean: dncTotalsMeanSegments[15], - dcnBin5Mean: dncTotalsMeanSegments[16], - dcnBin6Mean: dncTotalsMeanSegments[17], - dcnBin7Mean: dncTotalsMeanSegments[18], - dcnBin8Mean: dncTotalsMeanSegments[19], - dcnAllStdDev: dncTotalsStandardDevSegments[0], - dcnLpdStdDev: dncTotalsStandardDevSegments[1], - dcnLpdNStdDev: dncTotalsStandardDevSegments[2], - dcnLpdESStdDev: dncTotalsStandardDevSegments[3], - dcnMicroScrStdDev: dncTotalsStandardDevSegments[4], - dcnScrStdDev: dncTotalsStandardDevSegments[5], - dcnSlipStdDev: dncTotalsStandardDevSegments[6], - dcnAreaCountStdDev: dncTotalsStandardDevSegments[7], - dcnAreaStdDev: dncTotalsStandardDevSegments[8], - dcnHazeAvgStdDev: dncTotalsStandardDevSegments[9], - dcnHazeMedianStdDev: dncTotalsStandardDevSegments[10], - dcnHazeStdDevStdDev: dncTotalsStandardDevSegments[11], - dcnBin1StdDev: dncTotalsStandardDevSegments[12], - dcnBin2StdDev: dncTotalsStandardDevSegments[13], - dcnBin3StdDev: dncTotalsStandardDevSegments[14], - dcnBin4StdDev: dncTotalsStandardDevSegments[15], - dcnBin5StdDev: dncTotalsStandardDevSegments[16], - dcnBin6StdDev: dncTotalsStandardDevSegments[17], - dcnBin7StdDev: dncTotalsStandardDevSegments[18], - dcnBin8StdDev: dncTotalsStandardDevSegments[19], - dwnAllMin: dwnTotalsMinSegments[0], - dwnLpdMin: dwnTotalsMinSegments[1], - dwnLpdNMin: dwnTotalsMinSegments[2], - dwnLpdESMin: dwnTotalsMinSegments[3], - dwnMicroScrMin: dwnTotalsMinSegments[4], - dwnScrMin: dwnTotalsMinSegments[5], - dwnSlipMin: dwnTotalsMinSegments[6], - dwnAreaCountMin: dwnTotalsMinSegments[7], - dwnAreaMin: dwnTotalsMinSegments[8], - dwnHazeAvgMin: dwnTotalsMinSegments[9], - dwnHazeMedianMin: dwnTotalsMinSegments[10], - dwnHazeStdDevMin: dwnTotalsMinSegments[11], - dwnBin1Min: dwnTotalsMinSegments[12], - dwnBin2Min: dwnTotalsMinSegments[13], - dwnBin3Min: dwnTotalsMinSegments[14], - dwnBin4Min: dwnTotalsMinSegments[15], - dwnBin5Min: dwnTotalsMinSegments[16], - dwnBin6Min: dwnTotalsMinSegments[17], - dwnBin7Min: dwnTotalsMinSegments[18], - dwnBin8Min: dwnTotalsMinSegments[19], - dwnAllMax: dwnTotalsMaxSegments[0], - dwnLpdMax: dwnTotalsMaxSegments[1], - dwnLpdNMax: dwnTotalsMaxSegments[2], - dwnLpdESMax: dwnTotalsMaxSegments[3], - dwnMicroScrMax: dwnTotalsMaxSegments[4], - dwnScrMax: dwnTotalsMaxSegments[5], - dwnSlipMax: dwnTotalsMaxSegments[6], - dwnAreaCountMax: dwnTotalsMaxSegments[7], - dwnAreaMax: dwnTotalsMaxSegments[8], - dwnHazeAvgMax: dwnTotalsMaxSegments[9], - dwnHazeMedianMax: dwnTotalsMaxSegments[10], - dwnHazeStdDevMax: dwnTotalsMaxSegments[11], - dwnBin1Max: dwnTotalsMaxSegments[12], - dwnBin2Max: dwnTotalsMaxSegments[13], - dwnBin3Max: dwnTotalsMaxSegments[14], - dwnBin4Max: dwnTotalsMaxSegments[15], - dwnBin5Max: dwnTotalsMaxSegments[16], - dwnBin6Max: dwnTotalsMaxSegments[17], - dwnBin7Max: dwnTotalsMaxSegments[18], - dwnBin8Max: dwnTotalsMaxSegments[19], - dwnAllMean: dwnTotalsMeanSegments[0], - dwnLpdMean: dwnTotalsMeanSegments[1], - dwnLpdNMean: dwnTotalsMeanSegments[2], - dwnLpdESMean: dwnTotalsMeanSegments[3], - dwnMicroScrMean: dwnTotalsMeanSegments[4], - dwnScrMean: dwnTotalsMeanSegments[5], - dwnSlipMean: dwnTotalsMeanSegments[6], - dwnAreaCountMean: dwnTotalsMeanSegments[7], - dwnAreaMean: dwnTotalsMeanSegments[8], - dwnHazeAvgMean: dwnTotalsMeanSegments[9], - dwnHazeMedianMean: dwnTotalsMeanSegments[10], - dwnHazeStdDevMean: dwnTotalsMeanSegments[11], - dwnBin1Mean: dwnTotalsMeanSegments[12], - dwnBin2Mean: dwnTotalsMeanSegments[13], - dwnBin3Mean: dwnTotalsMeanSegments[14], - dwnBin4Mean: dwnTotalsMeanSegments[15], - dwnBin5Mean: dwnTotalsMeanSegments[16], - dwnBin6Mean: dwnTotalsMeanSegments[17], - dwnBin7Mean: dwnTotalsMeanSegments[18], - dwnBin8Mean: dwnTotalsMeanSegments[19], - dwnAllStdDev: dwnTotalsStandardDevSegments[0], - dwnLpdStdDev: dwnTotalsStandardDevSegments[1], - dwnLpdNStdDev: dwnTotalsStandardDevSegments[2], - dwnLpdESStdDev: dwnTotalsStandardDevSegments[3], - dwnMicroScrStdDev: dwnTotalsStandardDevSegments[4], - dwnScrStdDev: dwnTotalsStandardDevSegments[5], - dwnSlipStdDev: dwnTotalsStandardDevSegments[6], - dwnAreaCountStdDev: dwnTotalsStandardDevSegments[7], - dwnAreaStdDev: dwnTotalsStandardDevSegments[8], - dwnHazeAvgStdDev: dwnTotalsStandardDevSegments[9], - dwnHazeMedianStdDev: dwnTotalsStandardDevSegments[10], - dwnHazeStdDevStdDev: dwnTotalsStandardDevSegments[11], - dwnBin1StdDev: dwnTotalsStandardDevSegments[12], - dwnBin2StdDev: dwnTotalsStandardDevSegments[13], - dwnBin3StdDev: dwnTotalsStandardDevSegments[14], - dwnBin4StdDev: dwnTotalsStandardDevSegments[15], - dwnBin5StdDev: dwnTotalsStandardDevSegments[16], - dwnBin6StdDev: dwnTotalsStandardDevSegments[17], - dwnBin7StdDev: dwnTotalsStandardDevSegments[18], - dwnBin8StdDev: dwnTotalsStandardDevSegments[19], - dnnAllMin: dnnTotalsMinSegments[0], - dnnLpdMin: dnnTotalsMinSegments[1], - dnnLpdNMin: dnnTotalsMinSegments[2], - dnnLpdESMin: dnnTotalsMinSegments[3], - dnnMicroScrMin: dnnTotalsMinSegments[4], - dnnScrMin: dnnTotalsMinSegments[5], - dnnSlipMin: dnnTotalsMinSegments[6], - dnnAreaCountMin: dnnTotalsMinSegments[7], - dnnAreaMin: dnnTotalsMinSegments[8], - dnnHazeAvgMin: dnnTotalsMinSegments[9], - dnnHazeMedianMin: dnnTotalsMinSegments[10], - dnnHazeStdDevMin: dnnTotalsMinSegments[11], - dnnBin1Min: dnnTotalsMinSegments[12], - dnnBin2Min: dnnTotalsMinSegments[13], - dnnBin3Min: dnnTotalsMinSegments[14], - dnnBin4Min: dnnTotalsMinSegments[15], - dnnBin5Min: dnnTotalsMinSegments[16], - dnnBin6Min: dnnTotalsMinSegments[17], - dnnBin7Min: dnnTotalsMinSegments[18], - dnnBin8Min: dnnTotalsMinSegments[19], - dnnAllMax: dnnTotalsMaxSegments[0], - dnnLpdMax: dnnTotalsMaxSegments[1], - dnnLpdNMax: dnnTotalsMaxSegments[2], - dnnLpdESMax: dnnTotalsMaxSegments[3], - dnnMicroScrMax: dnnTotalsMaxSegments[4], - dnnScrMax: dnnTotalsMaxSegments[5], - dnnSlipMax: dnnTotalsMaxSegments[6], - dnnAreaCountMax: dnnTotalsMaxSegments[7], - dnnAreaMax: dnnTotalsMaxSegments[8], - dnnHazeAvgMax: dnnTotalsMaxSegments[9], - dnnHazeMedianMax: dnnTotalsMaxSegments[10], - dnnHazeStdDevMax: dnnTotalsMaxSegments[11], - dnnBin1Max: dnnTotalsMaxSegments[12], - dnnBin2Max: dnnTotalsMaxSegments[13], - dnnBin3Max: dnnTotalsMaxSegments[14], - dnnBin4Max: dnnTotalsMaxSegments[15], - dnnBin5Max: dnnTotalsMaxSegments[16], - dnnBin6Max: dnnTotalsMaxSegments[17], - dnnBin7Max: dnnTotalsMaxSegments[18], - dnnBin8Max: dnnTotalsMaxSegments[19], - dnnAllMean: dnnTotalsMeanSegments[0], - dnnLpdMean: dnnTotalsMeanSegments[1], - dnnLpdNMean: dnnTotalsMeanSegments[2], - dnnLpdESMean: dnnTotalsMeanSegments[3], - dnnMicroScrMean: dnnTotalsMeanSegments[4], - dnnScrMean: dnnTotalsMeanSegments[5], - dnnSlipMean: dnnTotalsMeanSegments[6], - dnnAreaCountMean: dnnTotalsMeanSegments[7], - dnnAreaMean: dnnTotalsMeanSegments[8], - dnnHazeAvgMean: dnnTotalsMeanSegments[9], - dnnHazeMedianMean: dnnTotalsMeanSegments[10], - dnnHazeStdDevMean: dnnTotalsMeanSegments[11], - dnnBin1Mean: dnnTotalsMeanSegments[12], - dnnBin2Mean: dnnTotalsMeanSegments[13], - dnnBin3Mean: dnnTotalsMeanSegments[14], - dnnBin4Mean: dnnTotalsMeanSegments[15], - dnnBin5Mean: dnnTotalsMeanSegments[16], - dnnBin6Mean: dnnTotalsMeanSegments[17], - dnnBin7Mean: dnnTotalsMeanSegments[18], - dnnBin8Mean: dnnTotalsMeanSegments[19], - dnnAllStdDev: dnnTotalsStandardDevSegments[0], - dnnLpdStdDev: dnnTotalsStandardDevSegments[1], - dnnLpdNStdDev: dnnTotalsStandardDevSegments[2], - dnnLpdESStdDev: dnnTotalsStandardDevSegments[3], - dnnMicroScrStdDev: dnnTotalsStandardDevSegments[4], - dnnScrStdDev: dnnTotalsStandardDevSegments[5], - dnnSlipStdDev: dnnTotalsStandardDevSegments[6], - dnnAreaCountStdDev: dnnTotalsStandardDevSegments[7], - dnnAreaStdDev: dnnTotalsStandardDevSegments[8], - dnnHazeAvgStdDev: dnnTotalsStandardDevSegments[9], - dnnHazeMedianStdDev: dnnTotalsStandardDevSegments[10], - dnnHazeStdDevStdDev: dnnTotalsStandardDevSegments[11], - dnnBin1StdDev: dnnTotalsStandardDevSegments[12], - dnnBin2StdDev: dnnTotalsStandardDevSegments[13], - dnnBin3StdDev: dnnTotalsStandardDevSegments[14], - dnnBin4StdDev: dnnTotalsStandardDevSegments[15], - dnnBin5StdDev: dnnTotalsStandardDevSegments[16], - dnnBin6StdDev: dnnTotalsStandardDevSegments[17], - dnnBin7StdDev: dnnTotalsStandardDevSegments[18], - dnnBin8StdDev: dnnTotalsStandardDevSegments[19]); + if (text.Contains(constant.ShortWaferSummary)) + { + result = new(dcnAllMin: dncTotalsMinSegments[0], + dcnLpdMin: dncTotalsMinSegments[1], + dcnLpdNMin: dncTotalsMinSegments[2], + dcnLpdESMin: dncTotalsMinSegments[3], + dcnMicroScrMin: dncTotalsMinSegments[4], + dcnScrMin: dncTotalsMinSegments[5], + dcnSlipMin: dncTotalsMinSegments[6], + dcnAreaCountMin: dncTotalsMinSegments[7], + dcnAreaMin: dncTotalsMinSegments[8], + dcnHazeAvgMin: string.Empty, + dcnHazeMedianMin: string.Empty, + dcnHazeStdDevMin: string.Empty, + dcnBin1Min: string.Empty, + dcnBin2Min: string.Empty, + dcnBin3Min: string.Empty, + dcnBin4Min: string.Empty, + dcnBin5Min: string.Empty, + dcnBin6Min: string.Empty, + dcnBin7Min: string.Empty, + dcnBin8Min: string.Empty, + dcnAllMax: dncTotalsMaxSegments[0], + dcnLpdMax: dncTotalsMaxSegments[1], + dcnLpdNMax: dncTotalsMaxSegments[2], + dcnLpdESMax: dncTotalsMaxSegments[3], + dcnMicroScrMax: dncTotalsMaxSegments[4], + dcnScrMax: dncTotalsMaxSegments[5], + dcnSlipMax: dncTotalsMaxSegments[6], + dcnAreaCountMax: dncTotalsMaxSegments[7], + dcnAreaMax: dncTotalsMaxSegments[8], + dcnHazeAvgMax: string.Empty, + dcnHazeMedianMax: string.Empty, + dcnHazeStdDevMax: string.Empty, + dcnBin1Max: string.Empty, + dcnBin2Max: string.Empty, + dcnBin3Max: string.Empty, + dcnBin4Max: string.Empty, + dcnBin5Max: string.Empty, + dcnBin6Max: string.Empty, + dcnBin7Max: string.Empty, + dcnBin8Max: string.Empty, + dcnAllMean: dncTotalsMeanSegments[0], + dcnLpdMean: dncTotalsMeanSegments[1], + dcnLpdNMean: dncTotalsMeanSegments[2], + dcnLpdESMean: dncTotalsMeanSegments[3], + dcnMicroScrMean: dncTotalsMeanSegments[4], + dcnScrMean: dncTotalsMeanSegments[5], + dcnSlipMean: dncTotalsMeanSegments[6], + dcnAreaCountMean: dncTotalsMeanSegments[7], + dcnAreaMean: dncTotalsMeanSegments[8], + dcnHazeAvgMean: string.Empty, + dcnHazeMedianMean: string.Empty, + dcnHazeStdDevMean: string.Empty, + dcnBin1Mean: string.Empty, + dcnBin2Mean: string.Empty, + dcnBin3Mean: string.Empty, + dcnBin4Mean: string.Empty, + dcnBin5Mean: string.Empty, + dcnBin6Mean: string.Empty, + dcnBin7Mean: string.Empty, + dcnBin8Mean: string.Empty, + dcnAllStdDev: dncTotalsStandardDevSegments[0], + dcnLpdStdDev: dncTotalsStandardDevSegments[1], + dcnLpdNStdDev: dncTotalsStandardDevSegments[2], + dcnLpdESStdDev: dncTotalsStandardDevSegments[3], + dcnMicroScrStdDev: dncTotalsStandardDevSegments[4], + dcnScrStdDev: dncTotalsStandardDevSegments[5], + dcnSlipStdDev: dncTotalsStandardDevSegments[6], + dcnAreaCountStdDev: dncTotalsStandardDevSegments[7], + dcnAreaStdDev: dncTotalsStandardDevSegments[8], + dcnHazeAvgStdDev: string.Empty, + dcnHazeMedianStdDev: string.Empty, + dcnHazeStdDevStdDev: string.Empty, + dcnBin1StdDev: string.Empty, + dcnBin2StdDev: string.Empty, + dcnBin3StdDev: string.Empty, + dcnBin4StdDev: string.Empty, + dcnBin5StdDev: string.Empty, + dcnBin6StdDev: string.Empty, + dcnBin7StdDev: string.Empty, + dcnBin8StdDev: string.Empty, + dwnAllMin: dwnTotalsMinSegments[0], + dwnLpdMin: dwnTotalsMinSegments[1], + dwnLpdNMin: dwnTotalsMinSegments[2], + dwnLpdESMin: dwnTotalsMinSegments[3], + dwnMicroScrMin: dwnTotalsMinSegments[4], + dwnScrMin: dwnTotalsMinSegments[5], + dwnSlipMin: dwnTotalsMinSegments[6], + dwnAreaCountMin: dwnTotalsMinSegments[7], + dwnAreaMin: dwnTotalsMinSegments[8], + dwnHazeAvgMin: string.Empty, + dwnHazeMedianMin: string.Empty, + dwnHazeStdDevMin: string.Empty, + dwnBin1Min: string.Empty, + dwnBin2Min: string.Empty, + dwnBin3Min: string.Empty, + dwnBin4Min: string.Empty, + dwnBin5Min: string.Empty, + dwnBin6Min: string.Empty, + dwnBin7Min: string.Empty, + dwnBin8Min: string.Empty, + dwnAllMax: dwnTotalsMaxSegments[0], + dwnLpdMax: dwnTotalsMaxSegments[1], + dwnLpdNMax: dwnTotalsMaxSegments[2], + dwnLpdESMax: dwnTotalsMaxSegments[3], + dwnMicroScrMax: dwnTotalsMaxSegments[4], + dwnScrMax: dwnTotalsMaxSegments[5], + dwnSlipMax: dwnTotalsMaxSegments[6], + dwnAreaCountMax: dwnTotalsMaxSegments[7], + dwnAreaMax: dwnTotalsMaxSegments[8], + dwnHazeAvgMax: string.Empty, + dwnHazeMedianMax: string.Empty, + dwnHazeStdDevMax: string.Empty, + dwnBin1Max: string.Empty, + dwnBin2Max: string.Empty, + dwnBin3Max: string.Empty, + dwnBin4Max: string.Empty, + dwnBin5Max: string.Empty, + dwnBin6Max: string.Empty, + dwnBin7Max: string.Empty, + dwnBin8Max: string.Empty, + dwnAllMean: dwnTotalsMeanSegments[0], + dwnLpdMean: dwnTotalsMeanSegments[1], + dwnLpdNMean: dwnTotalsMeanSegments[2], + dwnLpdESMean: dwnTotalsMeanSegments[3], + dwnMicroScrMean: dwnTotalsMeanSegments[4], + dwnScrMean: dwnTotalsMeanSegments[5], + dwnSlipMean: dwnTotalsMeanSegments[6], + dwnAreaCountMean: dwnTotalsMeanSegments[7], + dwnAreaMean: dwnTotalsMeanSegments[8], + dwnHazeAvgMean: string.Empty, + dwnHazeMedianMean: string.Empty, + dwnHazeStdDevMean: string.Empty, + dwnBin1Mean: string.Empty, + dwnBin2Mean: string.Empty, + dwnBin3Mean: string.Empty, + dwnBin4Mean: string.Empty, + dwnBin5Mean: string.Empty, + dwnBin6Mean: string.Empty, + dwnBin7Mean: string.Empty, + dwnBin8Mean: string.Empty, + dwnAllStdDev: dwnTotalsStandardDevSegments[0], + dwnLpdStdDev: dwnTotalsStandardDevSegments[1], + dwnLpdNStdDev: dwnTotalsStandardDevSegments[2], + dwnLpdESStdDev: dwnTotalsStandardDevSegments[3], + dwnMicroScrStdDev: dwnTotalsStandardDevSegments[4], + dwnScrStdDev: dwnTotalsStandardDevSegments[5], + dwnSlipStdDev: dwnTotalsStandardDevSegments[6], + dwnAreaCountStdDev: dwnTotalsStandardDevSegments[7], + dwnAreaStdDev: dwnTotalsStandardDevSegments[8], + dwnHazeAvgStdDev: string.Empty, + dwnHazeMedianStdDev: string.Empty, + dwnHazeStdDevStdDev: string.Empty, + dwnBin1StdDev: string.Empty, + dwnBin2StdDev: string.Empty, + dwnBin3StdDev: string.Empty, + dwnBin4StdDev: string.Empty, + dwnBin5StdDev: string.Empty, + dwnBin6StdDev: string.Empty, + dwnBin7StdDev: string.Empty, + dwnBin8StdDev: string.Empty, + dnnAllMin: string.Empty, + dnnLpdMin: string.Empty, + dnnLpdNMin: string.Empty, + dnnLpdESMin: string.Empty, + dnnMicroScrMin: string.Empty, + dnnScrMin: string.Empty, + dnnSlipMin: string.Empty, + dnnAreaCountMin: string.Empty, + dnnAreaMin: string.Empty, + dnnHazeAvgMin: string.Empty, + dnnHazeMedianMin: string.Empty, + dnnHazeStdDevMin: string.Empty, + dnnBin1Min: string.Empty, + dnnBin2Min: string.Empty, + dnnBin3Min: string.Empty, + dnnBin4Min: string.Empty, + dnnBin5Min: string.Empty, + dnnBin6Min: string.Empty, + dnnBin7Min: string.Empty, + dnnBin8Min: string.Empty, + dnnAllMax: string.Empty, + dnnLpdMax: string.Empty, + dnnLpdNMax: string.Empty, + dnnLpdESMax: string.Empty, + dnnMicroScrMax: string.Empty, + dnnScrMax: string.Empty, + dnnSlipMax: string.Empty, + dnnAreaCountMax: string.Empty, + dnnAreaMax: string.Empty, + dnnHazeAvgMax: string.Empty, + dnnHazeMedianMax: string.Empty, + dnnHazeStdDevMax: string.Empty, + dnnBin1Max: string.Empty, + dnnBin2Max: string.Empty, + dnnBin3Max: string.Empty, + dnnBin4Max: string.Empty, + dnnBin5Max: string.Empty, + dnnBin6Max: string.Empty, + dnnBin7Max: string.Empty, + dnnBin8Max: string.Empty, + dnnAllMean: string.Empty, + dnnLpdMean: string.Empty, + dnnLpdNMean: string.Empty, + dnnLpdESMean: string.Empty, + dnnMicroScrMean: string.Empty, + dnnScrMean: string.Empty, + dnnSlipMean: string.Empty, + dnnAreaCountMean: string.Empty, + dnnAreaMean: string.Empty, + dnnHazeAvgMean: string.Empty, + dnnHazeMedianMean: string.Empty, + dnnHazeStdDevMean: string.Empty, + dnnBin1Mean: string.Empty, + dnnBin2Mean: string.Empty, + dnnBin3Mean: string.Empty, + dnnBin4Mean: string.Empty, + dnnBin5Mean: string.Empty, + dnnBin6Mean: string.Empty, + dnnBin7Mean: string.Empty, + dnnBin8Mean: string.Empty, + dnnAllStdDev: string.Empty, + dnnLpdStdDev: string.Empty, + dnnLpdNStdDev: string.Empty, + dnnLpdESStdDev: string.Empty, + dnnMicroScrStdDev: string.Empty, + dnnScrStdDev: string.Empty, + dnnSlipStdDev: string.Empty, + dnnAreaCountStdDev: string.Empty, + dnnAreaStdDev: string.Empty, + dnnHazeAvgStdDev: string.Empty, + dnnHazeMedianStdDev: string.Empty, + dnnHazeStdDevStdDev: string.Empty, + dnnBin1StdDev: string.Empty, + dnnBin2StdDev: string.Empty, + dnnBin3StdDev: string.Empty, + dnnBin4StdDev: string.Empty, + dnnBin5StdDev: string.Empty, + dnnBin6StdDev: string.Empty, + dnnBin7StdDev: string.Empty, + dnnBin8StdDev: string.Empty +); + } + else if (text.Contains(constant.LongWaferSummary)) + { + result = new(dcnAllMin: dncTotalsMinSegments[0], + dcnLpdMin: dncTotalsMinSegments[1], + dcnLpdNMin: dncTotalsMinSegments[2], + dcnLpdESMin: dncTotalsMinSegments[3], + dcnMicroScrMin: dncTotalsMinSegments[4], + dcnScrMin: dncTotalsMinSegments[5], + dcnSlipMin: dncTotalsMinSegments[6], + dcnAreaCountMin: dncTotalsMinSegments[7], + dcnAreaMin: dncTotalsMinSegments[8], + dcnHazeAvgMin: dncTotalsMinSegments[9], + dcnHazeMedianMin: dncTotalsMinSegments[10], + dcnHazeStdDevMin: dncTotalsMinSegments[11], + dcnBin1Min: dncTotalsMinSegments[12], + dcnBin2Min: dncTotalsMinSegments[13], + dcnBin3Min: dncTotalsMinSegments[14], + dcnBin4Min: dncTotalsMinSegments[15], + dcnBin5Min: dncTotalsMinSegments[16], + dcnBin6Min: dncTotalsMinSegments[17], + dcnBin7Min: dncTotalsMinSegments[18], + dcnBin8Min: dncTotalsMinSegments[19], + dcnAllMax: dncTotalsMaxSegments[0], + dcnLpdMax: dncTotalsMaxSegments[1], + dcnLpdNMax: dncTotalsMaxSegments[2], + dcnLpdESMax: dncTotalsMaxSegments[3], + dcnMicroScrMax: dncTotalsMaxSegments[4], + dcnScrMax: dncTotalsMaxSegments[5], + dcnSlipMax: dncTotalsMaxSegments[6], + dcnAreaCountMax: dncTotalsMaxSegments[7], + dcnAreaMax: dncTotalsMaxSegments[8], + dcnHazeAvgMax: dncTotalsMaxSegments[9], + dcnHazeMedianMax: dncTotalsMaxSegments[10], + dcnHazeStdDevMax: dncTotalsMaxSegments[11], + dcnBin1Max: dncTotalsMaxSegments[12], + dcnBin2Max: dncTotalsMaxSegments[13], + dcnBin3Max: dncTotalsMaxSegments[14], + dcnBin4Max: dncTotalsMaxSegments[15], + dcnBin5Max: dncTotalsMaxSegments[16], + dcnBin6Max: dncTotalsMaxSegments[17], + dcnBin7Max: dncTotalsMaxSegments[18], + dcnBin8Max: dncTotalsMaxSegments[19], + dcnAllMean: dncTotalsMeanSegments[0], + dcnLpdMean: dncTotalsMeanSegments[1], + dcnLpdNMean: dncTotalsMeanSegments[2], + dcnLpdESMean: dncTotalsMeanSegments[3], + dcnMicroScrMean: dncTotalsMeanSegments[4], + dcnScrMean: dncTotalsMeanSegments[5], + dcnSlipMean: dncTotalsMeanSegments[6], + dcnAreaCountMean: dncTotalsMeanSegments[7], + dcnAreaMean: dncTotalsMeanSegments[8], + dcnHazeAvgMean: dncTotalsMeanSegments[9], + dcnHazeMedianMean: dncTotalsMeanSegments[10], + dcnHazeStdDevMean: dncTotalsMeanSegments[11], + dcnBin1Mean: dncTotalsMeanSegments[12], + dcnBin2Mean: dncTotalsMeanSegments[13], + dcnBin3Mean: dncTotalsMeanSegments[14], + dcnBin4Mean: dncTotalsMeanSegments[15], + dcnBin5Mean: dncTotalsMeanSegments[16], + dcnBin6Mean: dncTotalsMeanSegments[17], + dcnBin7Mean: dncTotalsMeanSegments[18], + dcnBin8Mean: dncTotalsMeanSegments[19], + dcnAllStdDev: dncTotalsStandardDevSegments[0], + dcnLpdStdDev: dncTotalsStandardDevSegments[1], + dcnLpdNStdDev: dncTotalsStandardDevSegments[2], + dcnLpdESStdDev: dncTotalsStandardDevSegments[3], + dcnMicroScrStdDev: dncTotalsStandardDevSegments[4], + dcnScrStdDev: dncTotalsStandardDevSegments[5], + dcnSlipStdDev: dncTotalsStandardDevSegments[6], + dcnAreaCountStdDev: dncTotalsStandardDevSegments[7], + dcnAreaStdDev: dncTotalsStandardDevSegments[8], + dcnHazeAvgStdDev: dncTotalsStandardDevSegments[9], + dcnHazeMedianStdDev: dncTotalsStandardDevSegments[10], + dcnHazeStdDevStdDev: dncTotalsStandardDevSegments[11], + dcnBin1StdDev: dncTotalsStandardDevSegments[12], + dcnBin2StdDev: dncTotalsStandardDevSegments[13], + dcnBin3StdDev: dncTotalsStandardDevSegments[14], + dcnBin4StdDev: dncTotalsStandardDevSegments[15], + dcnBin5StdDev: dncTotalsStandardDevSegments[16], + dcnBin6StdDev: dncTotalsStandardDevSegments[17], + dcnBin7StdDev: dncTotalsStandardDevSegments[18], + dcnBin8StdDev: dncTotalsStandardDevSegments[19], + dwnAllMin: dwnTotalsMinSegments[0], + dwnLpdMin: dwnTotalsMinSegments[1], + dwnLpdNMin: dwnTotalsMinSegments[2], + dwnLpdESMin: dwnTotalsMinSegments[3], + dwnMicroScrMin: dwnTotalsMinSegments[4], + dwnScrMin: dwnTotalsMinSegments[5], + dwnSlipMin: dwnTotalsMinSegments[6], + dwnAreaCountMin: dwnTotalsMinSegments[7], + dwnAreaMin: dwnTotalsMinSegments[8], + dwnHazeAvgMin: dwnTotalsMinSegments[9], + dwnHazeMedianMin: dwnTotalsMinSegments[10], + dwnHazeStdDevMin: dwnTotalsMinSegments[11], + dwnBin1Min: dwnTotalsMinSegments[12], + dwnBin2Min: dwnTotalsMinSegments[13], + dwnBin3Min: dwnTotalsMinSegments[14], + dwnBin4Min: dwnTotalsMinSegments[15], + dwnBin5Min: dwnTotalsMinSegments[16], + dwnBin6Min: dwnTotalsMinSegments[17], + dwnBin7Min: dwnTotalsMinSegments[18], + dwnBin8Min: dwnTotalsMinSegments[19], + dwnAllMax: dwnTotalsMaxSegments[0], + dwnLpdMax: dwnTotalsMaxSegments[1], + dwnLpdNMax: dwnTotalsMaxSegments[2], + dwnLpdESMax: dwnTotalsMaxSegments[3], + dwnMicroScrMax: dwnTotalsMaxSegments[4], + dwnScrMax: dwnTotalsMaxSegments[5], + dwnSlipMax: dwnTotalsMaxSegments[6], + dwnAreaCountMax: dwnTotalsMaxSegments[7], + dwnAreaMax: dwnTotalsMaxSegments[8], + dwnHazeAvgMax: dwnTotalsMaxSegments[9], + dwnHazeMedianMax: dwnTotalsMaxSegments[10], + dwnHazeStdDevMax: dwnTotalsMaxSegments[11], + dwnBin1Max: dwnTotalsMaxSegments[12], + dwnBin2Max: dwnTotalsMaxSegments[13], + dwnBin3Max: dwnTotalsMaxSegments[14], + dwnBin4Max: dwnTotalsMaxSegments[15], + dwnBin5Max: dwnTotalsMaxSegments[16], + dwnBin6Max: dwnTotalsMaxSegments[17], + dwnBin7Max: dwnTotalsMaxSegments[18], + dwnBin8Max: dwnTotalsMaxSegments[19], + dwnAllMean: dwnTotalsMeanSegments[0], + dwnLpdMean: dwnTotalsMeanSegments[1], + dwnLpdNMean: dwnTotalsMeanSegments[2], + dwnLpdESMean: dwnTotalsMeanSegments[3], + dwnMicroScrMean: dwnTotalsMeanSegments[4], + dwnScrMean: dwnTotalsMeanSegments[5], + dwnSlipMean: dwnTotalsMeanSegments[6], + dwnAreaCountMean: dwnTotalsMeanSegments[7], + dwnAreaMean: dwnTotalsMeanSegments[8], + dwnHazeAvgMean: dwnTotalsMeanSegments[9], + dwnHazeMedianMean: dwnTotalsMeanSegments[10], + dwnHazeStdDevMean: dwnTotalsMeanSegments[11], + dwnBin1Mean: dwnTotalsMeanSegments[12], + dwnBin2Mean: dwnTotalsMeanSegments[13], + dwnBin3Mean: dwnTotalsMeanSegments[14], + dwnBin4Mean: dwnTotalsMeanSegments[15], + dwnBin5Mean: dwnTotalsMeanSegments[16], + dwnBin6Mean: dwnTotalsMeanSegments[17], + dwnBin7Mean: dwnTotalsMeanSegments[18], + dwnBin8Mean: dwnTotalsMeanSegments[19], + dwnAllStdDev: dwnTotalsStandardDevSegments[0], + dwnLpdStdDev: dwnTotalsStandardDevSegments[1], + dwnLpdNStdDev: dwnTotalsStandardDevSegments[2], + dwnLpdESStdDev: dwnTotalsStandardDevSegments[3], + dwnMicroScrStdDev: dwnTotalsStandardDevSegments[4], + dwnScrStdDev: dwnTotalsStandardDevSegments[5], + dwnSlipStdDev: dwnTotalsStandardDevSegments[6], + dwnAreaCountStdDev: dwnTotalsStandardDevSegments[7], + dwnAreaStdDev: dwnTotalsStandardDevSegments[8], + dwnHazeAvgStdDev: dwnTotalsStandardDevSegments[9], + dwnHazeMedianStdDev: dwnTotalsStandardDevSegments[10], + dwnHazeStdDevStdDev: dwnTotalsStandardDevSegments[11], + dwnBin1StdDev: dwnTotalsStandardDevSegments[12], + dwnBin2StdDev: dwnTotalsStandardDevSegments[13], + dwnBin3StdDev: dwnTotalsStandardDevSegments[14], + dwnBin4StdDev: dwnTotalsStandardDevSegments[15], + dwnBin5StdDev: dwnTotalsStandardDevSegments[16], + dwnBin6StdDev: dwnTotalsStandardDevSegments[17], + dwnBin7StdDev: dwnTotalsStandardDevSegments[18], + dwnBin8StdDev: dwnTotalsStandardDevSegments[19], + dnnAllMin: dnnTotalsMinSegments[0], + dnnLpdMin: dnnTotalsMinSegments[1], + dnnLpdNMin: dnnTotalsMinSegments[2], + dnnLpdESMin: dnnTotalsMinSegments[3], + dnnMicroScrMin: dnnTotalsMinSegments[4], + dnnScrMin: dnnTotalsMinSegments[5], + dnnSlipMin: dnnTotalsMinSegments[6], + dnnAreaCountMin: dnnTotalsMinSegments[7], + dnnAreaMin: dnnTotalsMinSegments[8], + dnnHazeAvgMin: dnnTotalsMinSegments[9], + dnnHazeMedianMin: dnnTotalsMinSegments[10], + dnnHazeStdDevMin: dnnTotalsMinSegments[11], + dnnBin1Min: dnnTotalsMinSegments[12], + dnnBin2Min: dnnTotalsMinSegments[13], + dnnBin3Min: dnnTotalsMinSegments[14], + dnnBin4Min: dnnTotalsMinSegments[15], + dnnBin5Min: dnnTotalsMinSegments[16], + dnnBin6Min: dnnTotalsMinSegments[17], + dnnBin7Min: dnnTotalsMinSegments[18], + dnnBin8Min: dnnTotalsMinSegments[19], + dnnAllMax: dnnTotalsMaxSegments[0], + dnnLpdMax: dnnTotalsMaxSegments[1], + dnnLpdNMax: dnnTotalsMaxSegments[2], + dnnLpdESMax: dnnTotalsMaxSegments[3], + dnnMicroScrMax: dnnTotalsMaxSegments[4], + dnnScrMax: dnnTotalsMaxSegments[5], + dnnSlipMax: dnnTotalsMaxSegments[6], + dnnAreaCountMax: dnnTotalsMaxSegments[7], + dnnAreaMax: dnnTotalsMaxSegments[8], + dnnHazeAvgMax: dnnTotalsMaxSegments[9], + dnnHazeMedianMax: dnnTotalsMaxSegments[10], + dnnHazeStdDevMax: dnnTotalsMaxSegments[11], + dnnBin1Max: dnnTotalsMaxSegments[12], + dnnBin2Max: dnnTotalsMaxSegments[13], + dnnBin3Max: dnnTotalsMaxSegments[14], + dnnBin4Max: dnnTotalsMaxSegments[15], + dnnBin5Max: dnnTotalsMaxSegments[16], + dnnBin6Max: dnnTotalsMaxSegments[17], + dnnBin7Max: dnnTotalsMaxSegments[18], + dnnBin8Max: dnnTotalsMaxSegments[19], + dnnAllMean: dnnTotalsMeanSegments[0], + dnnLpdMean: dnnTotalsMeanSegments[1], + dnnLpdNMean: dnnTotalsMeanSegments[2], + dnnLpdESMean: dnnTotalsMeanSegments[3], + dnnMicroScrMean: dnnTotalsMeanSegments[4], + dnnScrMean: dnnTotalsMeanSegments[5], + dnnSlipMean: dnnTotalsMeanSegments[6], + dnnAreaCountMean: dnnTotalsMeanSegments[7], + dnnAreaMean: dnnTotalsMeanSegments[8], + dnnHazeAvgMean: dnnTotalsMeanSegments[9], + dnnHazeMedianMean: dnnTotalsMeanSegments[10], + dnnHazeStdDevMean: dnnTotalsMeanSegments[11], + dnnBin1Mean: dnnTotalsMeanSegments[12], + dnnBin2Mean: dnnTotalsMeanSegments[13], + dnnBin3Mean: dnnTotalsMeanSegments[14], + dnnBin4Mean: dnnTotalsMeanSegments[15], + dnnBin5Mean: dnnTotalsMeanSegments[16], + dnnBin6Mean: dnnTotalsMeanSegments[17], + dnnBin7Mean: dnnTotalsMeanSegments[18], + dnnBin8Mean: dnnTotalsMeanSegments[19], + dnnAllStdDev: dnnTotalsStandardDevSegments[0], + dnnLpdStdDev: dnnTotalsStandardDevSegments[1], + dnnLpdNStdDev: dnnTotalsStandardDevSegments[2], + dnnLpdESStdDev: dnnTotalsStandardDevSegments[3], + dnnMicroScrStdDev: dnnTotalsStandardDevSegments[4], + dnnScrStdDev: dnnTotalsStandardDevSegments[5], + dnnSlipStdDev: dnnTotalsStandardDevSegments[6], + dnnAreaCountStdDev: dnnTotalsStandardDevSegments[7], + dnnAreaStdDev: dnnTotalsStandardDevSegments[8], + dnnHazeAvgStdDev: dnnTotalsStandardDevSegments[9], + dnnHazeMedianStdDev: dnnTotalsStandardDevSegments[10], + dnnHazeStdDevStdDev: dnnTotalsStandardDevSegments[11], + dnnBin1StdDev: dnnTotalsStandardDevSegments[12], + dnnBin2StdDev: dnnTotalsStandardDevSegments[13], + dnnBin3StdDev: dnnTotalsStandardDevSegments[14], + dnnBin4StdDev: dnnTotalsStandardDevSegments[15], + dnnBin5StdDev: dnnTotalsStandardDevSegments[16], + dnnBin6StdDev: dnnTotalsStandardDevSegments[17], + dnnBin7StdDev: dnnTotalsStandardDevSegments[18], + dnnBin8StdDev: dnnTotalsStandardDevSegments[19]); + } + else + throw new Exception(constant.FormatExceptionMessage); return result; } diff --git a/Adaptation/Shared/ProcessDataStandardFormat.cs b/Adaptation/Shared/ProcessDataStandardFormat.cs index bc3c424..5d2e053 100644 --- a/Adaptation/Shared/ProcessDataStandardFormat.cs +++ b/Adaptation/Shared/ProcessDataStandardFormat.cs @@ -665,7 +665,7 @@ internal class ProcessDataStandardFormat return results; } - internal static string GetPDSFText(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, string logisticsText) + internal static string GetPDSFText(IFileRead fileRead, Logistics logistics, JsonElement[] jsonElements, string? logisticsText) { string result; if (jsonElements.Length == 0) @@ -850,33 +850,6 @@ internal class ProcessDataStandardFormat return string.Concat(((int)searchFor).ToString().PadLeft(2, '0'), separator, searchFor.ToString().Replace("In", string.Concat(separator, "In")).Replace("Ex", string.Concat(separator, "Ex"))); } - private static int? TryGetPropertyIndex(JsonProperty[] jsonProperties, string propertyName) - { - int? result = null; - for (int i = 0; i < jsonProperties.Length; i++) - { - if (jsonProperties[i].Name != propertyName) - continue; - result = i; - break; - } - if (result is null) - { - for (int i = 0; i < jsonProperties.Length; i++) - { - if (jsonProperties[i].Name[0] != propertyName[0]) - continue; - if (jsonProperties[i].Name.Length != propertyName.Length) - continue; - if (jsonProperties[i].Name != propertyName) - continue; - result = i; - break; - } - } - return result; - } - internal static string GetXml(ProcessDataStandardFormat processDataStandardFormat) { string result; diff --git a/Adaptation/_Tests/CreateSelfDescription/Production/v2.61.1/TBI01.cs b/Adaptation/_Tests/CreateSelfDescription/Production/v2.61.1/TBI01.cs new file mode 100644 index 0000000..38a4181 --- /dev/null +++ b/Adaptation/_Tests/CreateSelfDescription/Production/v2.61.1/TBI01.cs @@ -0,0 +1,65 @@ +#if true +using Adaptation._Tests.Shared; +using Microsoft.Extensions.Logging; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Diagnostics; +using System.IO; +using System.Reflection; + +namespace Adaptation._Tests.CreateSelfDescription.Production.v2_61_1; + +[TestClass] +public class TBI01 : EAFLoggingUnitTesting +{ + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + + internal static string DummyRoot { get; private set; } + internal static TBI01 EAFLoggingUnitTesting { get; private set; } + + static TBI01() => DummyRoot = @"\\mesfs.infineon.com\EC_Characterization_Si\Dummy"; + + public TBI01() : base(DummyRoot, testContext: null, declaringType: null, skipEquipmentDictionary: false) + { + if (EAFLoggingUnitTesting is null) + throw new Exception(); + } + + public TBI01(TestContext testContext) : base(DummyRoot, testContext, new StackFrame().GetMethod().DeclaringType, skipEquipmentDictionary: false) + { + } + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + EAFLoggingUnitTesting ??= new TBI01(testContext); + EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(testContext.TestName, " - ClassInitialize")); + string[] fileNameAndText = EAFLoggingUnitTesting.AdaptationTesting.GetCSharpText(testContext.TestName); + File.WriteAllText(fileNameAndText[0], fileNameAndText[1]); + File.WriteAllText(fileNameAndText[2], fileNameAndText[3]); + } + + [ClassCleanup()] + public static void ClassCleanup() + { + EAFLoggingUnitTesting?.Logger?.LogInformation("Cleanup"); + EAFLoggingUnitTesting?.Dispose(); + } + +#if DEBUG + [Ignore] +#endif + [TestMethod] + public void Production__v2_61_1__TBI01__txt() + { + string check = "*.txt"; + MethodBase methodBase = new StackFrame().GetMethod(); + EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Getting configuration")); + _ = AdaptationTesting.GetWriteConfigurationGetFileRead(methodBase, check, EAFLoggingUnitTesting.AdaptationTesting); + EAFLoggingUnitTesting.Logger.LogInformation(string.Concat(methodBase.Name, " - Exit")); + } + +} +#endif \ No newline at end of file diff --git a/Adaptation/_Tests/Extract/Production/v2.61.1/TBI01.cs b/Adaptation/_Tests/Extract/Production/v2.61.1/TBI01.cs new file mode 100644 index 0000000..a42ee5d --- /dev/null +++ b/Adaptation/_Tests/Extract/Production/v2.61.1/TBI01.cs @@ -0,0 +1,58 @@ +#if true +using Adaptation.Shared; +using Adaptation.Shared.Methods; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using System; +using System.Diagnostics; +using System.Reflection; + +namespace Adaptation._Tests.Extract.Production.v2_61_1; + +[TestClass] +public class TBI01 +{ + +#pragma warning disable CA2254 +#pragma warning disable IDE0060 + + private static CreateSelfDescription.Production.v2_61_1.TBI01 _TBI01; + + [ClassInitialize] + public static void ClassInitialize(TestContext testContext) + { + CreateSelfDescription.Production.v2_61_1.TBI01.ClassInitialize(testContext); + _TBI01 = CreateSelfDescription.Production.v2_61_1.TBI01.EAFLoggingUnitTesting; + } + + private static void NonThrowTryCatch() + { + try + { throw new Exception(); } + catch (Exception) { } + } + +#if DEBUG + [Ignore] +#endif + [TestMethod] + public void Production__v2_61_1__TBI01__txt() => _TBI01.Production__v2_61_1__TBI01__txt(); + +#if DEBUG + [Ignore] +#endif + [TestMethod] + public void Production__v2_61_1__TBI01__txt638997515742136250__Normal() + { + string check = "*.txt"; + bool validatePDSF = false; + _TBI01.Production__v2_61_1__TBI01__txt(); + MethodBase methodBase = new StackFrame().GetMethod(); + string[] variables = _TBI01.AdaptationTesting.GetVariables(methodBase, check, validatePDSF); + IFileRead fileRead = _TBI01.AdaptationTesting.Get(methodBase, sourceFileLocation: variables[2], sourceFileFilter: variables[3], useCyclicalForDescription: false); + Logistics logistics = new(fileRead); + _ = Shared.AdaptationTesting.ReExtractCompareUpdatePassDirectory(variables, fileRead, logistics, validatePDSF); + NonThrowTryCatch(); + } + +} +#endif \ No newline at end of file