public void DelegatesBlocks() { var parameters = new Dictionary <string, object>(); parameters["sampleRate"] = new Measurement(1000, "Hz"); var s = new DelegatedStimulus("DelegatedStimulus", "units", parameters, (p, b) => new OutputData(Enumerable.Range(0, (int)(b.TotalSeconds * (double)((IMeasurement)p["sampleRate"]).QuantityInBaseUnit)) .Select(i => new Measurement(i, "units")).ToList(), (IMeasurement)p["sampleRate"], false), (p) => Option <TimeSpan> .None()); var block = TimeSpan.FromMilliseconds(100); IEnumerator <IOutputData> iter = s.DataBlocks(block).GetEnumerator(); int n = 0; while (iter.MoveNext() && n < 100) { var expected = new OutputData( Enumerable.Range(0, (int)(block.TotalSeconds * (double)((IMeasurement)parameters["sampleRate"]).QuantityInBaseUnit)) .Select(i => new Measurement(i, "units")).ToList(), (IMeasurement)parameters["sampleRate"], false); Assert.That(iter.Current.Duration, Is.EqualTo(expected.Duration)); Assert.That(iter.Current.Data, Is.EqualTo(expected.Data)); n++; } }
public void DelegatesBlocks() { var parameters = new Dictionary<string, object>(); parameters["sampleRate"] = new Measurement(1000, "Hz"); var s = new DelegatedStimulus("DelegatedStimulus", "units", parameters, (p, b) => new OutputData(Enumerable.Range(0, (int)(b.TotalSeconds * (double)((IMeasurement)p["sampleRate"]).QuantityInBaseUnit)) .Select(i => new Measurement(i, "units")).ToList(), (IMeasurement)p["sampleRate"], false), (p) => Option<TimeSpan>.None()); var block = TimeSpan.FromMilliseconds(100); IEnumerator<IOutputData> iter = s.DataBlocks(block).GetEnumerator(); int n = 0; while (iter.MoveNext() && n < 100) { var expected = new OutputData( Enumerable.Range(0, (int)(block.TotalSeconds * (double)((IMeasurement)parameters["sampleRate"]).QuantityInBaseUnit)) .Select(i => new Measurement(i, "units")).ToList(), (IMeasurement)parameters["sampleRate"], false); Assert.That(iter.Current.Duration, Is.EqualTo(expected.Duration)); Assert.That(iter.Current.Data, Is.EqualTo(expected.Data)); n++; } }
public void ShouldThrowForUnitMismatch() { var parameters = new Dictionary <string, object>(); parameters["sampleRate"] = new Measurement(1000, "Hz"); var s = new DelegatedStimulus("DelegatedStimulus", "units", parameters, (p, b) => new OutputData(Enumerable.Range(0, (int)(b.TotalSeconds * (double)((IMeasurement)p["sampleRate"]).QuantityInBaseUnit)) .Select(i => new Measurement(i, "other")).ToList(), (IMeasurement)p["sampleRate"], false), (p) => Option <TimeSpan> .None()); var block = TimeSpan.FromMilliseconds(100); Assert.That(() => s.DataBlocks(block).GetEnumerator().MoveNext(), Throws.TypeOf(typeof(StimulusException))); }
public void ShouldThrowForUnitMismatch() { var parameters = new Dictionary<string, object>(); parameters["sampleRate"] = new Measurement(1000, "Hz"); var s = new DelegatedStimulus("DelegatedStimulus", "units", parameters, (p, b) => new OutputData(Enumerable.Range(0, (int)(b.TotalSeconds * (double)((IMeasurement)p["sampleRate"]).QuantityInBaseUnit)) .Select(i => new Measurement(i, "other")).ToList(), (IMeasurement)p["sampleRate"], false), (p) => Option<TimeSpan>.None()); var block = TimeSpan.FromMilliseconds(100); Assert.That(() => s.DataBlocks(block).GetEnumerator().MoveNext(), Throws.TypeOf(typeof(StimulusException))); }