public void ShouldUseBackgroundForMode() { const string VClampUnits = "V"; const string IClampUnits = "A"; Measurement VClampBackground = new Measurement(2, -3, VClampUnits); Measurement IClampBackground = new Measurement(-10, -3, IClampUnits); var c = new Controller(); var p = new FakeAxopatch(); var bg = new Dictionary<AxopatchInterop.OperatingMode, IMeasurement>() { {AxopatchInterop.OperatingMode.VClamp, VClampBackground}, {AxopatchInterop.OperatingMode.IClampNormal, IClampBackground}, }; var patch = new AxopatchDevice(p, c, bg); patch.BindStream(new DAQOutputStream("stream")); var data = new AxopatchInterop.AxopatchData() { OperatingMode = AxopatchInterop.OperatingMode.VClamp, ExternalCommandSensitivity = 2.5, ExternalCommandSensitivityUnits = AxopatchInterop.ExternalCommandSensitivityUnits.V_V }; p.Data = data; Assert.That(patch.OutputBackground, Is.EqualTo(AxopatchDevice.ConvertOutput(VClampBackground, patch.CurrentDeviceParameters))); data = new AxopatchInterop.AxopatchData() { OperatingMode = AxopatchInterop.OperatingMode.IClampNormal, ExternalCommandSensitivity = 1.5, ExternalCommandSensitivityUnits = AxopatchInterop.ExternalCommandSensitivityUnits.A_V }; p.Data = data; Assert.That(patch.OutputBackground, Is.EqualTo(AxopatchDevice.ConvertOutput(IClampBackground, patch.CurrentDeviceParameters))); }
public void ShouldConvertOutputUnitsInIClamp( [Values( AxopatchInterop.OperatingMode.I0, AxopatchInterop.OperatingMode.IClampFast, AxopatchInterop.OperatingMode.IClampNormal)] AxopatchInterop.OperatingMode operatingMode) { var c = new Controller(); var p = new Axopatch200B(); var patchDevice = new AxopatchDevice(p, c, null); var data = new AxopatchInterop.AxopatchData() { OperatingMode = operatingMode, ExternalCommandSensitivity = 2.5, ExternalCommandSensitivityUnits = AxopatchInterop.ExternalCommandSensitivityUnits.A_V }; var cmd = new Measurement(20, -12, "A"); var expected = operatingMode == AxopatchInterop.OperatingMode.I0 ? new Measurement(0, "V") : new Measurement(cmd.Quantity / (decimal)data.ExternalCommandSensitivity, cmd.Exponent, "V"); var actual = AxopatchDevice.ConvertOutput(cmd, data); Assert.That(actual, Is.EqualTo(expected)); }