< Summary

Information
Class: ReportingServices.Shared.ViewModels.ProductionReport.YieldStatistics
Assembly: ReportingServices.Shared
File(s): C:\Users\wathen\source\repos\ReportingServices\ReportingServices.Shared\ViewModels\ProductionReport\YieldStatistics.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 39
Coverable lines: 39
Total lines: 61
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 10
Branch coverage: 0%
Method coverage

Method coverage is only available for sponsors.

Upgrade to PRO version

Metrics

MethodBranch coverage Cyclomatic complexity Line coverage
get_StartDate()100%10%
get_OutsByDay()100%10%
get_ScrapByDay()100%10%
get_DailyPlanWafers()100%10%
get_IsCurrentWeek()100%10%
.ctor(...)100%10%
SetYieldInformation(...)100%10%
GetDistinctDatesFromReactorOuts(...)0%40%
GetReactorOutsByDay(...)0%60%

File(s)

C:\Users\wathen\source\repos\ReportingServices\ReportingServices.Shared\ViewModels\ProductionReport\YieldStatistics.cs

#LineLine coverage
 1using ReportingServices.Shared.Models.ProductionReport;
 2
 3namespace ReportingServices.Shared.ViewModels.ProductionReport
 4{
 5    public class YieldStatistics
 6    {
 07        public DateTime StartDate { get; set; }
 08        public List<ReactorOutsByDay> OutsByDay { get; set; }
 09        public List<ScrapByDay> ScrapByDay { get; set; }
 010        public int DailyPlanWafers { get; set; }
 011        public bool IsCurrentWeek { get; set; }
 12
 013        public YieldStatistics(DateTime startDate, bool isCurrentWeek)
 014        {
 015            StartDate = startDate;
 016            IsCurrentWeek = isCurrentWeek;
 017        }
 18
 19        public void SetYieldInformation(YieldInformation yieldInformation, QuarterlyTargets targets)
 020        {
 021            OutsByDay = GetReactorOutsByDay(yieldInformation.Outs);
 022            ScrapByDay = yieldInformation.Scrap;
 023            DailyPlanWafers = targets.Yield_Outs / targets.PlanWorkingDays;
 024        }
 25
 26        public static List<string> GetDistinctDatesFromReactorOuts(List<ReactorOutsByRDS> outs)
 027        {
 028            List<string> dates = new();
 29
 030            foreach (ReactorOutsByRDS rout in outs)
 031            {
 032                if (!dates.Contains(DateTime.Parse(rout.EndProcessTime).Date.ToString()))
 033                    dates.Add(DateTime.Parse(rout.EndProcessTime).Date.ToString());
 034            }
 35
 036            return dates;
 037        }
 38
 39        public static List<ReactorOutsByDay> GetReactorOutsByDay(List<ReactorOutsByRDS> outs)
 040        {
 041            List<ReactorOutsByDay> outsByDay = new();
 42
 043            List<string> dates = GetDistinctDatesFromReactorOuts(outs);
 44
 045            foreach (string date in dates)
 046            {
 047                int waferCount = 0;
 48
 049                foreach (ReactorOutsByRDS rout in outs)
 050                {
 051                    if (DateTime.Parse(rout.EndProcessTime).Date.ToString() == date)
 052                        waferCount += (int)float.Parse(rout.Units);
 053                }
 54
 055                outsByDay.Add(new ReactorOutsByDay { StartDate = date, TotalWafers = waferCount });
 056            }
 57
 058            return outsByDay;
 059        }
 60    }
 61}