public void Sample_OnRandom(int frequency) { var rand = new MersenneTwister((uint)Math.Abs(DateTime.Now.Ticks)); var counter = new SystematicCounter(frequency, SystematicCounter.CounterType.ON_RANDOM, rand); var numRuns = 100; var expectedSamples = numRuns / frequency; var results = new bool[numRuns]; var seenSamples = 0; for (int i = 0; i < numRuns; i++) { var result = counter.Next(); if (result) { seenSamples++; } results[i] = result; } //var seenSamples = results.Where(x => x == true).Count(); seenSamples.Should().Be(expectedSamples); }
public override SampleResult Sample() { var isSample = SystematicCounter.Next(); if (isSample) { if (IsSelectingITrees && InsuranceSampler.Next()) { return(SampleResult.I); } else { return(SampleResult.M); } } else { return(SampleResult.C); } }
public SystematicSelecter(int frequency, int iFrequency, bool randomStart) : base(frequency, iFrequency) { SystematicCounter = new SystematicCounter(frequency, (randomStart) ? SystematicCounter.CounterType.ON_RANDOM : SystematicCounter.CounterType.ON_LAST, Rand); }
public SystematicSelecter(int frequency, int iFrequency, int counter, int insuranceIndex, int insuranceCounter, int hitIndex) : base(frequency, iFrequency, counter, insuranceIndex, insuranceCounter) { SystematicCounter = new SystematicCounter(frequency, hitIndex, counter); }