public void ShouldThrowForUnexpectedScaleFactorUnitsWhenExpectingVolts( [Values(new object[] { MultiClampInterop.ScaleFactorUnits.V_A, MultiClampInterop.ScaleFactorUnits.V_mA, MultiClampInterop.ScaleFactorUnits.V_nA, MultiClampInterop.ScaleFactorUnits.V_uA, MultiClampInterop.ScaleFactorUnits.V_pA })] MultiClampInterop.ScaleFactorUnits scaleFactorUnits, [Values(new object[] { MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_V_MEMBx10, MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_V_MEMBx100, MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_V_CMD_EXT, MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_V_CMD_MEMB, MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_V_CMD_SUMMED })] MultiClampInterop.SignalIdentifier signalIdentifier ) { MultiClampInterop.OperatingMode mode; switch (signalIdentifier) { case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_V_CMD_EXT: case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_V_CMD_MEMB: case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_V_CMD_SUMMED: mode = MultiClampInterop.OperatingMode.VClamp; break; case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_V_MEMBx10: case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_V_MEMBx100: mode = MultiClampInterop.OperatingMode.IClamp; break; default: throw new ArgumentOutOfRangeException("signalIdentifier"); } var data = new MultiClampInterop.MulticlampData() { ScaledOutputSignal = signalIdentifier, ScaleFactorUnits = scaleFactorUnits, OperatingMode = mode }; Assert.Throws <MultiClampDeviceException>(() => MultiClampDevice.ConvertInput(UNUSED_MEASUREMENT, data), scaleFactorUnits + " is not an allowed unit conversion for scaled output mode."); }
public void ShouldThrowForUnexpectedScaleFactorUnitsWhenExpectingAmps( [Values(new object[] { MultiClampInterop.ScaleFactorUnits.V_mV, MultiClampInterop.ScaleFactorUnits.V_uV, MultiClampInterop.ScaleFactorUnits.V_V })] MultiClampInterop.ScaleFactorUnits scaleFactorUnits, [Values(new object[] { MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_I_MEMB, MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_I_CMD_MEMB, MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_I_CMD_SUMMED })] MultiClampInterop.SignalIdentifier signalIdentifier ) { var mc = new FakeMulticlampCommander(); MultiClampInterop.OperatingMode mode; switch (signalIdentifier) { case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_VC_GLDR_I_MEMB: mode = MultiClampInterop.OperatingMode.VClamp; break; case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_I_CMD_MEMB: case MultiClampInterop.SignalIdentifier.AXMCD_OUT_PRI_IC_GLDR_I_CMD_SUMMED: mode = MultiClampInterop.OperatingMode.IClamp; break; default: throw new ArgumentOutOfRangeException("signalIdentifier"); } var data = new MultiClampInterop.MulticlampData() { ScaledOutputSignal = signalIdentifier, ScaleFactorUnits = scaleFactorUnits, OperatingMode = mode }; Assert.Throws <MultiClampDeviceException>( () => MultiClampDevice.ConvertInput(new Measurement(1.0m, "A"), data)); }