コード例 #1
0
 public void ResetDefaultValues()
 {
     RuInterferenceRecord.ResetDefault();
     RuInterferenceStat.ResetDefault();
     CdrTaRecord.ResetDefault();
     InterferenceStat.ResetDefault();
 }
コード例 #2
0
 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);
     }
 }
コード例 #3
0
 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);
     }
 }
コード例 #4
0
 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));
 }
コード例 #5
0
 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);
     }
 }
コード例 #6
0
 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);
     }
 }
コード例 #7
0
 public void Import()
 {
     if (_detail == null)
     {
         ImportWhenDetailIsNull();
     }
     if (_detail == null)
     {
         return;
     }
     CalculateThreshold();
     if (InterferenceStat.IsInnerBound(_record.Rtd))
     {
         IncreaseTaInnerIntervalNum();
     }
     else
     {
         IncreaseTaOuterIntervalNum();
     }
 }
コード例 #8
0
 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();
 }
コード例 #9
0
 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();
     }
 }
コード例 #10
0
 public void UpdateInfo(InterferenceStat stat)
 {
     stat.VictimCells       = Victims.Count;
     stat.InterferenceCells = Victims.Count(x => x.InterferenceRatio > RuInterferenceStat.RatioThreshold);
 }