public void ResetDefaultValues() { RuInterferenceRecord.ResetDefault(); RuInterferenceStat.ResetDefault(); CdrTaRecord.ResetDefault(); InterferenceStat.ResetDefault(); }
protected override void AssertDistributionParameters(CdrTaRecord details, CdrRtdRecord record) { Assert.AreEqual(details.TaSum, record.Rtd, 1E-6); if (InterferenceStat.IsInnerBound(record.Rtd)) { Assert.AreEqual(details.TaInnerIntervalNum, 1); Assert.AreEqual(details.TaOuterIntervalNum, 0); } else { Assert.AreEqual(details.TaInnerIntervalNum, 0); Assert.AreEqual(details.TaOuterIntervalNum, 1); } }
public void AssertImportTwoSameRecordsResults(List <CdrTaRecord> details, CdrRtdRecord record) { AssertResultsWithOneDetails(details, record); Assert.AreEqual(details[0].TaSum, 2 * record.Rtd, 1E-6); if (InterferenceStat.IsInnerBound(record.Rtd)) { Assert.AreEqual(details[0].TaInnerIntervalNum, 2); Assert.AreEqual(details[0].TaOuterIntervalNum, 0); } else { Assert.AreEqual(details[0].TaInnerIntervalNum, 0); Assert.AreEqual(details[0].TaOuterIntervalNum, 2); } }
public void AssertImportTwoRecordsWithSameCellResults(List <CdrTaRecord> details, CdrRtdRecord record1, CdrRtdRecord record2) { Assert.AreEqual(details.Count, 1); Assert.AreEqual(details[0].CellId, record1.CellId); Assert.AreEqual(details[0].SectorId, record1.SectorId); Assert.AreEqual(details[0].TaMax, Math.Max(record1.Rtd, record2.Rtd), 1E-6); Assert.AreEqual(details[0].TaMin, Math.Min(record1.Rtd, record2.Rtd), 1E-6); Assert.AreEqual(details[0].TaAverage, (record1.Rtd + record2.Rtd) / 2, 1E-6); Assert.AreEqual(details[0].TaSum, record1.Rtd + record2.Rtd, 1E-6); Assert.AreEqual(details[0].TaInnerIntervalNum, (InterferenceStat.IsInnerBound(record1.Rtd) ? 1 : 0) + (InterferenceStat.IsInnerBound(record2.Rtd) ? 1 : 0)); Assert.AreEqual(details[0].TaOuterIntervalNum, (InterferenceStat.IsInnerBound(record1.Rtd) ? 0 : 1) + (InterferenceStat.IsInnerBound(record2.Rtd) ? 0 : 1)); }
public static void ImportByTa(this List <InterferenceStat> stats, IEnumerable <CdrTaRecord> details) { foreach (CdrTaRecord detail in details.Where(x => x.TaMax > 0)) { InterferenceStat stat = stats.FirstOrDefault(x => x.CellId == detail.CellId && x.SectorId == detail.SectorId); if (stat == null) { stat = new InterferenceStat { CellId = detail.CellId, SectorId = detail.SectorId }; stats.Add(stat); } detail.CloneProperties <ITaDb>(stat); } }
protected override void AssertDistributionParameters(CdrTaRecord details, CdrRtdRecord record) { if (record.Rtd > details.Threshold) { Assert.AreEqual( InterferenceStat.IsInnerBound(record.Rtd) ? details.TaOuterIntervalExcessNum : details.TaInnerIntervalExcessNum, 0); Assert.AreEqual( InterferenceStat.IsInnerBound(record.Rtd) ? details.TaInnerIntervalExcessNum : details.TaOuterIntervalExcessNum, 1); } else { Assert.AreEqual(details.TaOuterIntervalExcessNum, 0); Assert.AreEqual(details.TaInnerIntervalExcessNum, 0); } }
public void Import() { if (_detail == null) { ImportWhenDetailIsNull(); } if (_detail == null) { return; } CalculateThreshold(); if (InterferenceStat.IsInnerBound(_record.Rtd)) { IncreaseTaInnerIntervalNum(); } else { IncreaseTaOuterIntervalNum(); } }
public void Save(IEnumerable <InterferenceStat> stats) { foreach (InterferenceStat stat in stats) { InterferenceStat item = InterferenceStats.FirstOrDefault(x => x.CellId == stat.CellId && x.SectorId == stat.SectorId); if (item == null) { context.InterferenceStats.Add(stat); context.SaveChanges(); } else { stat.UpdateInterferenceInfo(item); stat.UpdateRtdInfo(item); stat.UpdateTaInfo(item); } } context.SaveChanges(); }
private static void ImportRuRtdRecords(this List <InterferenceStat> stats, IEnumerable <RuInterferenceRecord> records) { foreach (RuInterferenceRecord record in records.Where(x => x.MinRtd > 0)) { InterferenceStat stat = stats.FirstOrDefault(x => x.CellId == record.CellId && x.SectorId == record.SectorId); if (stat == null) { stat = new InterferenceStat { CellId = record.CellId, SectorId = record.SectorId }; stats.Add(stat); } stat.MinRtd = record.MinRtd; stat.SumRtds = record.Interferences.Select(x => x.SumRtds).Sum(); stat.TotalRtds = record.Interferences.Select(x => x.TotalRtds).Sum(); } }
public void UpdateInfo(InterferenceStat stat) { stat.VictimCells = Victims.Count; stat.InterferenceCells = Victims.Count(x => x.InterferenceRatio > RuInterferenceStat.RatioThreshold); }