public void DoesNotPushStimulusConfigurationSpansToCompletedEpochs() { const string UNUSED_NAME = "UNUSED"; var c = new SingleEpochController(); var dev = new UnitConvertingExternalDevice(UNUSED_NAME, UNUSED_DEVICE_MANUFACTURER, UNUSED_BACKGROUND); var outputTime = DateTimeOffset.Now; var configuration = new List <IPipelineNodeConfiguration>(); var config = new Dictionary <string, object>(); config["key"] = "value"; configuration.Add(new PipelineNodeConfiguration(UNUSED_NAME, config)); var epochMock = new Mock <Epoch>("test-epoch"); epochMock.Setup(epoch => epoch.DidOutputData(dev, outputTime, TimeSpan.FromSeconds(0.1), configuration)); epochMock.Setup(epoch => epoch.IsComplete).Returns(true); c.SetCurrentEpoch(epochMock.Object); c.DidOutputData(dev, outputTime, TimeSpan.FromSeconds(0.1), configuration); epochMock.Verify(epoch => epoch.DidOutputData(dev, outputTime, TimeSpan.FromSeconds(0.1), configuration), Times.AtMost(0)); }
public void PushesDataToEpoch() { const string UNUSED_NAME = "UNUSED"; var c = new SingleEpochController(); var dev = new UnitConvertingExternalDevice(UNUSED_NAME, UNUSED_DEVICE_MANUFACTURER, UNUSED_BACKGROUND); c.AddDevice(dev); var srate = new Measurement(100, "Hz"); var samples = Enumerable.Range(0, 100).Select(i => new Measurement(1, "V")).ToList(); var e = new Epoch("PushesDataToEpoch"); e.Responses[dev] = new Response(); e.Stimuli[dev] = new RenderedStimulus((string)"ID1", (IDictionary <string, object>) new Dictionary <string, object>(), (IOutputData) new OutputData(samples, srate, false)); c.SetCurrentEpoch(e); var streamFake = new DAQInputStream("StreamFake"); var data = new InputData(samples, srate, DateTimeOffset.Now) .DataWithStreamConfiguration(streamFake, new Dictionary <string, object>()); c.PushInputData(dev, data); Assert.That(e.Responses[dev].Data, Is.EqualTo(data.Data)); Assert.That(e.Responses[dev].InputTime, Is.EqualTo(data.InputTime)); Assert.That(e.Responses[dev].DataConfigurationSpans.First().Nodes.First(), Is.EqualTo(data.NodeConfigurationWithName(streamFake.Name))); }
public void PushesStimulusConfigurationSpansToEpoch() { const string UNUSED_NAME = "UNUSED"; var c = new SingleEpochController(); var dev = new UnitConvertingExternalDevice(UNUSED_NAME, UNUSED_DEVICE_MANUFACTURER, UNUSED_BACKGROUND); var outputTime = DateTimeOffset.Now; var configuration = new List<IPipelineNodeConfiguration>(); var config = new Dictionary<string, object>(); config["key"] = "value"; configuration.Add(new PipelineNodeConfiguration(UNUSED_NAME, config)); var epochMock = new Mock<Epoch>("test-epoch"); epochMock.Setup(epoch => epoch.DidOutputData(dev, outputTime, TimeSpan.FromSeconds(0.1), configuration)).AtMostOnce(); epochMock.Setup(epoch => epoch.IsComplete).Returns(false); c.SetCurrentEpoch(epochMock.Object); c.DidOutputData(dev, outputTime, TimeSpan.FromSeconds(0.1), configuration); epochMock.Verify(epoch => epoch.DidOutputData(dev, outputTime, TimeSpan.FromSeconds(0.1), configuration)); }
public void PushesDataToEpoch() { const string UNUSED_NAME = "UNUSED"; var c = new SingleEpochController(); var dev = new UnitConvertingExternalDevice(UNUSED_NAME, UNUSED_DEVICE_MANUFACTURER, UNUSED_BACKGROUND); c.AddDevice(dev); var srate = new Measurement(100, "Hz"); var samples = Enumerable.Range(0, 100).Select(i => new Measurement(1, "V")).ToList(); var e = new Epoch("PushesDataToEpoch"); e.Responses[dev] = new Response(); e.Stimuli[dev] = new RenderedStimulus((string) "ID1", (IDictionary<string, object>) new Dictionary<string, object>(), (IOutputData) new OutputData(samples, srate, false)); c.SetCurrentEpoch(e); var streamFake = new DAQInputStream("StreamFake"); var data = new InputData(samples, srate, DateTimeOffset.Now) .DataWithStreamConfiguration(streamFake, new Dictionary<string, object>()); c.PushInputData(dev, data); Assert.That(e.Responses[dev].Data, Is.EqualTo(data.Data)); Assert.That(e.Responses[dev].InputTime, Is.EqualTo(data.InputTime)); Assert.That(e.Responses[dev].DataConfigurationSpans.First().Nodes.First(), Is.EqualTo(data.NodeConfigurationWithName(streamFake.Name))); }