protected override MolecularPattern GetSpamp(NSEventBlock eventBlock) { double alpha = 0.5; var dtp = MetricEngine.Compute(Metric.DataThroughput, eventBlock); var rls = MetricEngine.Compute(Metric.RoutingListSize, eventBlock); var dtpExpected = MetricEngine.Compute(Metric.ExpectedDataThroughput, eventBlock); if (dtp >= 0) { dtpMean = alpha * dtpMean + (1 - alpha) * dtp; } if (rls >= 0) { rlsMean = alpha * rlsMean + (1 - alpha) * rls; } if (dtpExpected >= 0) { dtpExpectedMean = alpha * dtpExpectedMean + (1 - alpha) * dtpExpected; } if (dtpMean == 0 || rlsMean == 0 || dtpExpectedMean == 0) { return(null); } return(new MolecularPattern(new double[] { rlsMean, dtpMean, dtpExpectedMean })); }
protected override MolecularPattern GetSdamp(NSEventBlock eventBlock) { // compute SDAMP var ITH = MetricEngine.Compute(Metric.InterestThroughput, eventBlock); var LBP = MetricEngine.Compute(Metric.LongBufferProbability, eventBlock); var OHD = MetricEngine.Compute(Metric.OneHopDelay, eventBlock); if (ITH < 0 || LBP < 0 || OHD < 0) { return(null); } return(new MolecularPattern(new double[3] { ITH, LBP, OHD })); }
protected override MolecularPattern GetAntigenPeptide(NSEventBlock eventBlock) { // NOTE: set PEPTIDE_LENGTH constant accordingly var myIR = MetricEngine.Compute(Metric.MyInterestSendRate, eventBlock); if (myIR < 0) { return(null); } // TODO: NORMALIZE THE VECTOR if (myIR < 20) { myIR /= 20; } else { myIR = 1; } return(new MolecularPattern(new double[] { myIR })); }
public void GetEndpointMetrics_HappyPath() { var request = new MetricRequest { After = _After, Before = _Before, CompanyName = _CompanyName, Username = _Username, Size = _Size, Ascending = _Ascending }; var entity = new MetricsResponse[] { new MetricsResponse { Key = _Endpoint, NumberOfRequests = _ResponseTime, MinResponseTime = _ResponseTime, AverageResponseTime = _ResponseTime, MaxResponseTime = _ResponseTime } }; var mockRepository = Substitute.For <IMetricRepository>(); mockRepository.GetEndpointMetrics(_CompanyName, _Username, _Size, _Ascending, _After, _Before).Returns(entity); var engine = new MetricEngine(mockRepository); var response = engine.GetEndpointMetrics(request); Assert.AreEqual(entity[0].Key, response[0].Key); Assert.AreEqual(entity[0].NumberOfRequests, response[0].NumberOfRequests); Assert.AreEqual(entity[0].MinResponseTime, response[0].MinResponseTime); Assert.AreEqual(entity[0].AverageResponseTime, response[0].AverageResponseTime); Assert.AreEqual(entity[0].MaxResponseTime, response[0].MaxResponseTime); }