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.
This commit is contained in:
2025-12-02 08:32:55 -07:00
parent 127a24b77e
commit 8ee374b2a8
7 changed files with 739 additions and 306 deletions

View File

@ -719,23 +719,90 @@ public partial class Job
private static string GetCommandText(CommonB commonB, string jobNames)
{ // cSpell:disable
List<string> 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

View File

@ -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.";
}

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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

View File

@ -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