public static int ComputeCriticalValue(this NumberInfo numberInfo, ThreeRegion threeRegion) { var countNumber = numberInfo.MaxValue - numberInfo.MinValue + 1; var part = (int)Math.Floor((decimal)countNumber / 3); int criticalValue; switch (threeRegion) { case ThreeRegion.FirstRegion: criticalValue = part; break; case ThreeRegion.SecondRegion: criticalValue = part * 2; break; case ThreeRegion.ThirdRegion: criticalValue = numberInfo.MaxValue; break; default: throw new Exception("Not through this branch "); } return(criticalValue); }
public ThreeRegionDataInfo(ThreeRegion regionShape, int count, NumberInfo numberInfo) { _regionShape = regionShape; _count = count; _numberInfo = numberInfo; _keyNumbers = new ConcurrentDictionary <int, PeriodNumberInfo>(); }
public ThreeRegionDataInfo GetThreeRegionData(ThreeRegion threeRegion) { if (ThreeRegionDatas.ContainsKey(threeRegion)) { return(ThreeRegionDatas[threeRegion]); } return(null); }