public PerformanceMeasurements(string version, string description, PerformanceMeasurementConfigurationParameters parameters) { ValidateArguments(version, description); FrameworkVersion = version; FrameworkDescription = description; SimulationDuration = parameters.SimulationDuration; FrameCount = parameters.LogCount; HistogramBins = parameters.HistogramBins; RealizationTimes = new DynamicHistogram(HistogramBins); SolverSteps = new DynamicHistogram[FrameCount]; StepTicks = new DynamicHistogram[FrameCount]; ReactionFirings = new DynamicHistogram[FrameCount]; for (int iFrame = 0; iFrame < FrameCount; iFrame++) { SolverSteps[iFrame] = new DynamicHistogram(HistogramBins); StepTicks[iFrame] = new DynamicHistogram(HistogramBins); ReactionFirings[iFrame] = new DynamicHistogram(HistogramBins); } MeasurementTimeTicks = 0; _stopwatch = new Stopwatch(); }
public void DynamicHistogramBinCountCtor() { const int binCount = 8; var histogram = new DynamicHistogram(binCount); Assert.AreEqual(0, histogram.SampleCount); Assert.AreEqual(binCount, histogram.BinCount); }
public void DynamicHistogramVectorCtor() { const int binCount = 8; var bins = new long[binCount]; var histogram = new DynamicHistogram(bins); Assert.AreEqual(0, histogram.SampleCount); Assert.AreEqual(binCount, histogram.BinCount); histogram.AddSample(1968); histogram.AddSample(2012); CollectionAssert.AreEqual(bins, histogram); }
private static void SerializeHistogramToStream(DynamicHistogram histogram, TextWriter textWriter) { textWriter.Write("{0},", histogram.LowerBound); textWriter.Write("{0},", histogram.Width); textWriter.Write("{0},", histogram.BinCount); textWriter.Write(histogram[0]); for (int i = 1; i < histogram.BinCount; i++) { textWriter.Write(",{0}", histogram[i]); } textWriter.WriteLine(); }
public void DynamicHistogramAddSample() { const int binCount = 8; var histogram = new DynamicHistogram(binCount); const long lowSample = 1968; histogram.AddSample(lowSample); const long highSample = 2012; histogram.AddSample(highSample); // Histogram lower bound is closed, therefore less OR equal Assert.LessOrEqual(histogram.LowerBound, lowSample); // Histogram upper bound is open, therefore strictly greater Assert.Greater(histogram.UpperBound, highSample); Assert.AreEqual(2, histogram.SampleCount); Assert.AreEqual(histogram.LowerBound + histogram.Width * histogram.BinCount, histogram.UpperBound); }
TRealVar TOZ; //Время обработки заявки в системе #endregion Fields #region Constructors public VU(VS parent, string name) : base(parent, name) { ParentVS = parent; UVD = new UstroystvoVvoda(this, "УВД" + "(" + name + ")"); UR = new UstroystvoRabota(this, "УОД" + "(" + name + ")"); UV = new UstroystvoVyvoda(this, "УВР" + "(" + name + ")"); this.AddModelObject(UVD); this.AddModelObject(UR); this.AddModelObject(UV); #region Инициализация переменных объектов модели KVZ = InitModelObject<TIntVar>(); KOZ = InitModelObject<TIntVar>(); TOZ = InitModelObject<TRealVar>(); KPZ = new int[3]; Gener_Vhod = InitModelObject<ExpStream>(); Gener_RazmerVvod = InitModelObject<UniformStream>(); Gener_RazmerVyvoda = InitModelObject<NormalStream>(); // Gener_RazmerRabota = InitModelObject<ExpStream>(); #endregion #region Инициализация сборщиков статистики Variance_TOZ = InitModelObject<Variance<Double>>(); //создаем сборщик Variance_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Min_TOZ = InitModelObject<Min<double>>(); //создаем сборщик Min_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Max_TOZ = InitModelObject<Max<double>>(); //создаем сборщик Max_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной His_TOZ = InitModelObject<DynamicHistogram>(); His_TOZ.ConnectOnSet(TOZ); #endregion }
public void DynamicHistogramCtorNullVector() { #pragma warning disable 168 // unused local variable var unused = new DynamicHistogram(null); #pragma warning restore 168 }
public void DynamicHistogramCtorBadBinCount() { #pragma warning disable 168 // unused local variable var unused = new DynamicHistogram(-5); #pragma warning restore 168 }
Variance<Double> Variance_TOZ; //МО и дисперсия #endregion Fields #region Constructors public VS(Model parent, string name) : base(parent, name) { #region Инициализация переменных объектов модели KVZ = InitModelObject<TIntVar>(); KOZ = InitModelObject<TIntVar>(); TOZ = InitModelObject<TRealVar>(); UZEL = new VU[3]; UZEL[0] = new VU(this, "ВУ1"); UZEL[1] = new VU(this, "ВУ2"); UZEL[2] = new VU(this, "ВУ3"); this.AddModelObject(UZEL[0]); this.AddModelObject(UZEL[1]); this.AddModelObject(UZEL[2]); KANAL = new KPD[3]; KANAL[0] = new KPD(this, "КПД(1,2)"); KANAL[1] = new KPD(this, "КПД(1,3)"); KANAL[2] = new KPD(this, "КПД(2,3)"); this.AddModelObject(KANAL[0]); this.AddModelObject(KANAL[1]); this.AddModelObject(KANAL[2]); KANAL[0].VU_1 = UZEL[0]; KANAL[0].VU_2 = UZEL[1]; KANAL[1].VU_1 = UZEL[0]; KANAL[1].VU_2 = UZEL[2]; KANAL[2].VU_1 = UZEL[1]; KANAL[2].VU_2 = UZEL[2]; #endregion #region Инициализация сборщиков статистики Variance_TOZ = InitModelObject<Variance<Double>>(); //создаем сборщик Variance_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Min_TOZ = InitModelObject<Min<double>>(); //создаем сборщик Min_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной Max_TOZ = InitModelObject<Max<double>>(); //создаем сборщик Max_TOZ.ConnectOnSet(TOZ); //подключаем сборщик к переменной His_TOZ = InitModelObject<DynamicHistogram>(); His_TOZ.ConnectOnSet(TOZ); //-------------------------------------------------- allValuesTest = InitModelObject<AllValues<int>>("Сборщик полной статистики"); dhTest = InitModelObject<DynamicHistogram>("Динамическая гистограмма"); testAV = InitModelObject<TIntVar>("Тестовая переменная 1"); testDH = InitModelObject<TRealVar>("Тестовая переменная 2"); testAV.AddCollectors_OnSet(allValuesTest); testDH.AddCollectors_OnSet(dhTest); //-------------------------------------------------- #endregion /*Tracer.AddAutoTabModel(this); UZEL.ToList().ForEach(u => Tracer.AddAutoTabModel(u)); KANAL.ToList().ForEach(k => Tracer.AddAutoTabModel(k));*/ }