public void ShouldReadSimpleTelegraph()
        {
            IAxopatch patch = new Axopatch200B();

            IDictionary<string, IInputData> data = new Dictionary<string, IInputData>();

            data[AxopatchDevice.GAIN_TELEGRAPH_STREAM_NAME] = new InputData(Enumerable.Repeat(new Measurement(1.9, "V"), 10), null, DateTimeOffset.Now);
            data[AxopatchDevice.MODE_TELEGRAPH_STREAM_NAME] = new InputData(Enumerable.Repeat(new Measurement(6.1, "V"), 10), null, DateTimeOffset.Now);

            AxopatchInterop.AxopatchData telegraph = patch.ReadTelegraphData(data);
            Assert.That(telegraph.Gain, Is.EqualTo(0.5));
            Assert.That(telegraph.OperatingMode, Is.EqualTo(AxopatchInterop.OperatingMode.VClamp));
            Assert.That(telegraph.ExternalCommandSensitivity, Is.EqualTo(0.02));
            Assert.That(telegraph.ExternalCommandSensitivityUnits, Is.EqualTo(AxopatchInterop.ExternalCommandSensitivityUnits.V_V));
        }
        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));
        }