TASKS
Regression testing
Model structure testing
Class coverage analysis
Condition coverage analysis
Statistics
Class coverage
Condition coverage
REGRESSION TEST RESULTS
PVSystems.Examples.Application.BuckOpen: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Application.Inverter1phOpen: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Application.Inverter1phOpenSynch: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Application.Inverter1phClosed: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Application.Inverter1phClosedSynch: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Application.PVInverter1ph: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Application.PVInverter1phSynch: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Application.USBBatteryConverter: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.IdealCBSwitchVerification: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.MPPTControllerVerification: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.ParkVerification: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.PLLVerification: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.PVArrayVerification: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.SwitchingPWMVerification: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.SwitchingCPMVerification: Validation ok. Structural validation ok. Translation time validation ok.
PVSystems.Examples.Verification.SimpleBatteryVerification: Validation ok. Structural validation ok. Translation time validation ok.
Top of page
Class coverage
Condition coverage
STATISTICS
32 tests performed on 16 test cases.
All tests ok, validation of PVSystems, successful.
Top of page
Statistics
Condition coverage
CLASS COVERAGE
41 of 50 classes are covered by the test suite. 9 classes are not covered.
Of the not covered classes
9 are models
Listing classes in PVSystems
- package UsersGuide
- package References
- package ReleaseNotes
- package Examples
- package Application
- model BuckOpen, used 1 time.
- model Inverter1phOpen, used 1 time.
- model Inverter1phOpenSynch, used 1 time.
- model Inverter1phClosed, used 1 time.
- model Inverter1phClosedSynch, used 1 time.
- model PVInverter1ph, used 1 time.
- model PVInverter1phSynch, used 1 time.
- model USBBatteryConverter, used 1 time.
- package Verification
- model IdealCBSwitchVerification, used 1 time.
- model MPPTControllerVerification, used 1 time.
- model ParkVerification, used 1 time.
- model PLLVerification, used 1 time.
- model PVArrayVerification, used 1 time.
- model SwitchingPWMVerification, used 1 time.
- model SwitchingCPMVerification, used 1 time.
- model SimpleBatteryVerification, used 1 time.
- package Electrical
- model IdealCBSwitch, used 9 times.
- model SW1, not used.
- model SW2, not used.
- model SW3, not used.
- model CCM1, used 14 times.
- model CCM2, not used.
- model CCM3, not used.
- model CCM4, not used.
- model CCM5, not used.
- model CCM_DCM1, used 1 time.
- model CCM_DCM2, not used.
- model PVArray, used 5 times.
- model SimpleBattery, used 1 time.
- package Assemblies
- model HBridge, used 6 times.
- model SwitchModel, used 12 times.
- model HBridgeSwitched, used 2 times.
- model BidirectionalBuckBoost, used 1 time.
- model SwitchModel, used 2 times.
- model CPMBidirectionalBuckBoost, used 1 time.
- package Interfaces
- model BatteryInterface, used 1 time.
- model SwitchNetworkInterface, used 15 times.
- model TwoPort, used 25 times.
- package Control
- block SwitchingPWM, used 4 times.
- block SwitchingCPM, used 1 time.
- block DeadTime, used 2 times.
- model CPM_CCM, used 2 times.
- model CPM, not used.
- block Park, used 10 times.
- block InversePark, used 5 times.
- block PLL, used 5 times.
- block MPPTController, used 3 times.
- package Assemblies
- block Inverter1phCurrentController, used 4 times.
- block Inverter1phCompleteController, used 2 times.
- package Interfaces
- model CPMInterface, used 2 times.
- package Icons
Top of page
Statistics
Class coverage
CONDITION COVERAGE
- not (PV.v < 0) and PV.v > PV.Vocn is always false
- not (pVArray1.v < 0) and pVArray1.v > pVArray1.Vocn is always false
- not HBsw.idealCBSwitch.idealClosingSwitch.useHeatPort is always true
- not HBsw.idealCBSwitch.idealDiode.useHeatPort is always true
- not HBsw.idealCBSwitch1.idealClosingSwitch.useHeatPort is always true
- not HBsw.idealCBSwitch1.idealDiode.useHeatPort is always true
- not HBsw.idealCBSwitch2.idealClosingSwitch.useHeatPort is always true
- not HBsw.idealCBSwitch2.idealDiode.useHeatPort is always true
- not HBsw.idealCBSwitch3.idealClosingSwitch.useHeatPort is always true
- not HBsw.idealCBSwitch3.idealDiode.useHeatPort is always true
- not R.useHeatPort is always true
- not Rav.useHeatPort is always true
- not Rbatt.useHeatPort is always true
- not Rdc.useHeatPort is always true
- not Rload.useHeatPort is always true
- not Rsw.useHeatPort is always true
- not conv.conv.inESR.useHeatPort is always true
- not conv.conv.outESR.useHeatPort is always true
- not conv.conv.resistor.useHeatPort is always true
- not dsw.useHeatPort is always true
- not idealCBSwitch.idealClosingSwitch.useHeatPort is always true
- not idealCBSwitch.idealDiode.useHeatPort is always true
- not meanACPower.yGreaterOrEqualZero in when(sample(meanACPower.t0+1/meanACPower.f, 1/meanACPower.f)) is always true
- not resistor.useHeatPort is always true
- not sw.useHeatPort is always true
- Controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (Controller.currentController.idPI.y_start < Controller.currentController.idPI.yMin or Controller.currentController.idPI.y_start > Controller.currentController.idPI.yMax) is always false
- Controller.currentController.idPI.limiter.strict is always false
- Controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (Controller.currentController.iqPI.y_start < Controller.currentController.iqPI.yMin or Controller.currentController.iqPI.y_start > Controller.currentController.iqPI.yMax) is always false
- Controller.currentController.iqPI.limiter.strict is always false
- Controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (Controller.vdcPI.y_start < Controller.vdcPI.yMin or Controller.vdcPI.y_start > Controller.vdcPI.yMax) is always false
- Controller.vdcPI.limiter.strict is always false
- PV.v < 0 is always false
- PWM.limiter.strict is always false
- abs(controller.mppt.pk-pre(controller.mppt.pk)) < controller.mppt.pkThreshold in when(sample(controller.mppt.sampleTime, controller.mppt.sampleTime)) is always false
- abs(mpptController.pk-pre(mpptController.pk)) < mpptController.pkThreshold in when(sample(mpptController.sampleTime, mpptController.sampleTime)) is always false
- boostPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (boostPI.y_start < boostPI.yMin or boostPI.y_start > boostPI.yMax) is always false
- boostPI.limiter.strict is always false
- buckPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (buckPI.y_start < buckPI.yMin or buckPI.y_start > buckPI.yMax) is always false
- buckPI.limiter.strict is always false
- control.idPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (control.idPI.y_start < control.idPI.yMin or control.idPI.y_start > control.idPI.yMax) is always false
- control.idPI.limiter.strict is always false
- control.iqPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (control.iqPI.y_start < control.iqPI.yMin or control.iqPI.y_start > control.iqPI.yMax) is always false
- control.iqPI.limiter.strict is always false
- controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (controller.currentController.idPI.y_start < controller.currentController.idPI.yMin or controller.currentController.idPI.y_start > controller.currentController.idPI.yMax) is always false
- controller.currentController.idPI.limiter.strict is always false
- controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (controller.currentController.iqPI.y_start < controller.currentController.iqPI.yMin or controller.currentController.iqPI.y_start > controller.currentController.iqPI.yMax) is always false
- controller.currentController.iqPI.limiter.strict is always false
- controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.InitialOutput and (controller.vdcPI.y_start < controller.vdcPI.yMin or controller.vdcPI.y_start > controller.vdcPI.yMax) is always false
- controller.vdcPI.limiter.strict is always false
- conv.boost_cpm.enable is always false
- conv.buck_cpm.enable is always true
- noEvent( not (abs(Controller.mppt.pk-pre(Controller.mppt.pk)) < Controller.mppt.pkThreshold) and not (Controller.mppt.pk-pre(Controller.mppt.pk) > 0) and Controller.mppt.vk-pre(Controller.mppt.vk) > 0) in when(sample(Controller.mppt.sampleTime, Controller.mppt.sampleTime)) is always false
- noEvent( not (abs(Controller.mppt.pk-pre(Controller.mppt.pk)) < Controller.mppt.pkThreshold) and Controller.mppt.pk-pre(Controller.mppt.pk) > 0 and not (Controller.mppt.vk-pre(Controller.mppt.vk) > 0) and Controller.mppt.vk-pre(Controller.mppt.vk) < 0) in when(sample(Controller.mppt.sampleTime, Controller.mppt.sampleTime)) is always false
- noEvent( not (abs(controller.mppt.pk-pre(controller.mppt.pk)) < controller.mppt.pkThreshold) and not (controller.mppt.pk-pre(controller.mppt.pk) > 0) and not (controller.mppt.vk-pre(controller.mppt.vk) > 0) and controller.mppt.vk-pre(controller.mppt.vk) < 0) in when(sample(controller.mppt.sampleTime, controller.mppt.sampleTime)) is always false
- noEvent( not (abs(controller.mppt.pk-pre(controller.mppt.pk)) < controller.mppt.pkThreshold) and controller.mppt.pk-pre(controller.mppt.pk) > 0 and not (controller.mppt.vk-pre(controller.mppt.vk) > 0) and controller.mppt.vk-pre(controller.mppt.vk) < 0) in when(sample(controller.mppt.sampleTime, controller.mppt.sampleTime)) is always false
- pVArray1.v < 0 is always false
- signalPWM.limiter.strict is always false
- slewRateLimiter.strict is always false
- smooth((if Controller.currentController.iqPI.limiter.u > Controller.currentController.iqPI.limiter.uMax then Controller.currentController.iqPI.limiter.uMax else (if Controller.currentController.iqPI.limiter.u < Controller.currentController.iqPI.limiter.uMin then Controller.currentController.iqPI.limiter.uMin else Controller.currentController.iqPI.limiter.u)), not Controller.currentController.i... is always false
- smooth((if Controller.vdcPI.limiter.u > Controller.vdcPI.limiter.uMax then Controller.vdcPI.limiter.uMax else (if Controller.vdcPI.limiter.u < Controller.vdcPI.limiter.uMin then Controller.vdcPI.limiter.uMin else Controller.vdcPI.limiter.u)), not Controller.vdcPI.limiter.strict and Controller.vdcPI.limiter.u > Controller.vdcPI.limiter.uMax) is always false
- smooth((if PWM.limiter.u > PWM.limiter.uMax then PWM.limiter.uMax else (if PWM.limiter.u < PWM.limiter.uMin then PWM.limiter.uMin else PWM.limiter.u)), not PWM.limiter.strict and not (PWM.limiter.u > PWM.limiter.uMax) and PWM.limiter.u < PWM.limiter.uMin) is always false
- smooth((if PWM.limiter.u > PWM.limiter.uMax then PWM.limiter.uMax else (if PWM.limiter.u < PWM.limiter.uMin then PWM.limiter.uMin else PWM.limiter.u)), not PWM.limiter.strict and PWM.limiter.u > PWM.limiter.uMax) is always false
- smooth((if boostPI.limiter.u > boostPI.limiter.uMax then boostPI.limiter.uMax else (if boostPI.limiter.u < boostPI.limiter.uMin then boostPI.limiter.uMin else boostPI.limiter.u)), not boostPI.limiter.strict and not (boostPI.limiter.u > boostPI.limiter.uMax) and boostPI.limiter.u < boostPI.limiter.uMin) is always false
- smooth((if boostPI.limiter.u > boostPI.limiter.uMax then boostPI.limiter.uMax else (if boostPI.limiter.u < boostPI.limiter.uMin then boostPI.limiter.uMin else boostPI.limiter.u)), not boostPI.limiter.strict and boostPI.limiter.u > boostPI.limiter.uMax) is always true
- smooth((if buckPI.limiter.u > buckPI.limiter.uMax then buckPI.limiter.uMax else (if buckPI.limiter.u < buckPI.limiter.uMin then buckPI.limiter.uMin else buckPI.limiter.u)), not buckPI.limiter.strict and not (buckPI.limiter.u > buckPI.limiter.uMax) and buckPI.limiter.u < buckPI.limiter.uMin) is always false
- smooth((if buckPI.limiter.u > buckPI.limiter.uMax then buckPI.limiter.uMax else (if buckPI.limiter.u < buckPI.limiter.uMin then buckPI.limiter.uMin else buckPI.limiter.u)), not buckPI.limiter.strict and buckPI.limiter.u > buckPI.limiter.uMax) is always false
- smooth((if control.idPI.limiter.u > control.idPI.limiter.uMax then control.idPI.limiter.uMax else (if control.idPI.limiter.u < control.idPI.limiter.uMin then control.idPI.limiter.uMin else control.idPI.limiter.u)), not control.idPI.limiter.strict and not (control.idPI.limiter.u > control.idPI.limiter.uMax) and control.idPI.limiter.u < control.idPI.limiter.uMin) is always false
- smooth((if control.idPI.limiter.u > control.idPI.limiter.uMax then control.idPI.limiter.uMax else (if control.idPI.limiter.u < control.idPI.limiter.uMin then control.idPI.limiter.uMin else control.idPI.limiter.u)), not control.idPI.limiter.strict and control.idPI.limiter.u > control.idPI.limiter.uMax) is always false
- smooth((if control.iqPI.limiter.u > control.iqPI.limiter.uMax then control.iqPI.limiter.uMax else (if control.iqPI.limiter.u < control.iqPI.limiter.uMin then control.iqPI.limiter.uMin else control.iqPI.limiter.u)), not control.iqPI.limiter.strict and not (control.iqPI.limiter.u > control.iqPI.limiter.uMax) and control.iqPI.limiter.u < control.iqPI.limiter.uMin) is always false
- smooth((if control.iqPI.limiter.u > control.iqPI.limiter.uMax then control.iqPI.limiter.uMax else (if control.iqPI.limiter.u < control.iqPI.limiter.uMin then control.iqPI.limiter.uMin else control.iqPI.limiter.u)), not control.iqPI.limiter.strict and control.iqPI.limiter.u > control.iqPI.limiter.uMax) is always false
- smooth((if controller.vdcPI.limiter.u > controller.vdcPI.limiter.uMax then controller.vdcPI.limiter.uMax else (if controller.vdcPI.limiter.u < controller.vdcPI.limiter.uMin then controller.vdcPI.limiter.uMin else controller.vdcPI.limiter.u)), not controller.vdcPI.limiter.strict and controller.vdcPI.limiter.u > controller.vdcPI.limiter.uMax) is always false
- smooth((if signalPWM.limiter.u > signalPWM.limiter.uMax then signalPWM.limiter.uMax else (if signalPWM.limiter.u < signalPWM.limiter.uMin then signalPWM.limiter.uMin else signalPWM.limiter.u)), not signalPWM.limiter.strict and not (signalPWM.limiter.u > signalPWM.limiter.uMax) and signalPWM.limiter.u < signalPWM.limiter.uMin) is always false
- smooth((if signalPWM.limiter.u > signalPWM.limiter.uMax then signalPWM.limiter.uMax else (if signalPWM.limiter.u < signalPWM.limiter.uMin then signalPWM.limiter.uMin else signalPWM.limiter.u)), not signalPWM.limiter.strict and signalPWM.limiter.u > signalPWM.limiter.uMax) is always false
- smooth((if switchingCPM.vcLimiter.u > switchingCPM.vcLimiter.uMax then switchingCPM.vcLimiter.uMax else (if switchingCPM.vcLimiter.u < switchingCPM.vcLimiter.uMin then switchingCPM.vcLimiter.uMin else switchingCPM.vcLimiter.u)), not switchingCPM.vcLimiter.strict and not (switchingCPM.vcLimiter.u > switchingCPM.vcLimiter.uMax) and switchingCPM.vcLimiter.u < switchingCPM.vcLimiter.uMin) is always false
- smooth((if switchingCPM.vcLimiter.u > switchingCPM.vcLimiter.uMax then switchingCPM.vcLimiter.uMax else (if switchingCPM.vcLimiter.u < switchingCPM.vcLimiter.uMin then switchingCPM.vcLimiter.uMin else switchingCPM.vcLimiter.u)), not switchingCPM.vcLimiter.strict and switchingCPM.vcLimiter.u > switchingCPM.vcLimiter.uMax) is always false
- smooth((if switchingPWM.limiter.u > switchingPWM.limiter.uMax then switchingPWM.limiter.uMax else (if switchingPWM.limiter.u < switchingPWM.limiter.uMin then switchingPWM.limiter.uMin else switchingPWM.limiter.u)), not switchingPWM.limiter.strict and not (switchingPWM.limiter.u > switchingPWM.limiter.uMax) and switchingPWM.limiter.u < switchingPWM.limiter.uMin) is always false
- smooth((if switchingPWM.limiter.u > switchingPWM.limiter.uMax then switchingPWM.limiter.uMax else (if switchingPWM.limiter.u < switchingPWM.limiter.uMin then switchingPWM.limiter.uMin else switchingPWM.limiter.u)), not switchingPWM.limiter.strict and switchingPWM.limiter.u > switchingPWM.limiter.uMax) is always false
- switchingCPM.vcLimiter.strict is always false
- switchingPWM.limiter.strict is always false
- Modelica.Blocks.Continuous.Integrator
- not (Controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (Controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.InitialState or Controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (Controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (Controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.InitialState or Controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (Controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (Controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.InitialState or Controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (boostPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (boostPI.initType == Modelica.Blocks.Types.InitPID.InitialState or boostPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (buckPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (buckPI.initType == Modelica.Blocks.Types.InitPID.InitialState or buckPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (control.idPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (control.idPI.initType == Modelica.Blocks.Types.InitPID.InitialState or control.idPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (control.iqPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (control.iqPI.initType == Modelica.Blocks.Types.InitPID.InitialState or control.iqPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.InitialState or controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.InitialState or controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- not (controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.SteadyState) and (controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.InitialState or controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState) is always true
- Controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- Controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- Controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- boostPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- buckPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- control.idPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- control.iqPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- controller.currentController.idPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- controller.currentController.iqPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- controller.vdcPI.initType == Modelica.Blocks.Types.InitPID.SteadyState is always false
- Modelica.Blocks.Continuous.LimPID
- limitsAtInit is always true
- strict is always false
- with_D is always false
- with_I is always true
- Modelica.Blocks.Logical.Hysteresis
- pre_y_start is always false
- Modelica.Blocks.Logical.Pre
- pre_u_start is always true
- Modelica.Blocks.Logical.RSFlipFlop
- Modelica.Blocks.Math.Mean
- yGreaterOrEqualZero is always false
- Modelica.Blocks.Nonlinear.Limiter
- limitsAtInit is always true
- strict is always false
- Modelica.Blocks.Nonlinear.SlewRateLimiter
- Modelica.Blocks.Sources.BooleanExpression
- Modelica.Blocks.Sources.BooleanStep
- startValue is always false
- Modelica.Blocks.Sources.Cosine
- time < startTime is always false
- Modelica.Blocks.Sources.SawTooth
- time < startTime or nperiod == 0 or nperiod > 0 and count >= nperiod is always false
- Modelica.Blocks.Sources.Sine
- time < startTime is always false
- Modelica.Electrical.Analog.Basic.Resistor
- useHeatPort is always false
- Modelica.Electrical.Analog.Basic.VariableResistor
- useHeatPort is always false
- Modelica.Electrical.Analog.Ideal.IdealClosingSwitch
- useHeatPort is always false
- Modelica.Electrical.Analog.Ideal.IdealDiode
- useHeatPort is always false
- PVSystems.Electrical.Assemblies.CPMBidirectionalBuckBoost
- PVSystems.Electrical.CCM_DCM1
- smooth((if d > dmax then dmax else (if d < dmin then dmin else d)), not (d > dmax) and d < dmin) is always false
- smooth((if d > dmax then dmax else (if d < dmin then dmin else d)), d > dmax) is always false
- PVSystems.Electrical.Interfaces.SwitchNetworkInterface
- smooth((if HBav.s1.d > HBav.s1.dmax then HBav.s1.dmax else (if HBav.s1.d < HBav.s1.dmin then HBav.s1.dmin else HBav.s1.d)), HBav.s1.d > HBav.s1.dmax) is always false
- smooth((if HBav.s2.d > HBav.s2.dmax then HBav.s2.dmax else (if HBav.s2.d < HBav.s2.dmin then HBav.s2.dmin else HBav.s2.d)), HBav.s2.d > HBav.s2.dmax) is always false
- smooth((if conv.conv.boostSw.d > conv.conv.boostSw.dmax then conv.conv.boostSw.dmax else (if conv.conv.boostSw.d < conv.conv.boostSw.dmin then conv.conv.boostSw.dmin else conv.conv.boostSw.d)), not (conv.conv.boostSw.d > conv.conv.boostSw.dmax) and conv.conv.boostSw.d < conv.conv.boostSw.dmin) is always true
- smooth((if conv.conv.boostSw.d > conv.conv.boostSw.dmax then conv.conv.boostSw.dmax else (if conv.conv.boostSw.d < conv.conv.boostSw.dmin then conv.conv.boostSw.dmin else conv.conv.boostSw.d)), conv.conv.boostSw.d > conv.conv.boostSw.dmax) is always false
- smooth((if conv.conv.buckSw.d > conv.conv.buckSw.dmax then conv.conv.buckSw.dmax else (if conv.conv.buckSw.d < conv.conv.buckSw.dmin then conv.conv.buckSw.dmin else conv.conv.buckSw.d)), conv.conv.buckSw.d > conv.conv.buckSw.dmax) is always false
- smooth((if sn.d > sn.dmax then sn.dmax else (if sn.d < sn.dmin then sn.dmin else sn.d)), not (sn.d > sn.dmax) and sn.d < sn.dmin) is always false
- smooth((if sn.d > sn.dmax then sn.dmax else (if sn.d < sn.dmin then sn.dmin else sn.d)), sn.d > sn.dmax) is always false
Top of page
Statistics
Class coverage
Condition coverage