Skip to content

Commit

Permalink
Rename time constant variable for consistency.
Browse files Browse the repository at this point in the history
  • Loading branch information
nealkruis committed May 26, 2023
1 parent 7814bc2 commit 15c0d98
Show file tree
Hide file tree
Showing 8 changed files with 133 additions and 133 deletions.
2 changes: 1 addition & 1 deletion idd/Energy+.idd.in
Original file line number Diff line number Diff line change
Expand Up @@ -28329,7 +28329,7 @@ HVACTemplate:Zone:WaterToAirHeatPump,
\default 2.5
\note The maximum on-off cycling rate for the compressor
\note Suggested value is 2.5 for a typical heat pump
N19, \field Heat Pump Time Constant
N19, \field Latent Capacity Time Constant
\type real
\units s
\minimum 0.0
Expand Down
34 changes: 17 additions & 17 deletions src/EnergyPlus/VariableSpeedCoils.cc
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ namespace VariableSpeedCoils {
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Twet_Rated = NumArray(6);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Gamma_Rated = NumArray(7);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = NumArray(8);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant = NumArray(9);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = NumArray(9);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = NumArray(10);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HOTGASREHEATFLG = int(NumArray(11));
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).CondenserType = DataHeatBalance::RefrigCondenserType::Water;
Expand Down Expand Up @@ -920,7 +920,7 @@ namespace VariableSpeedCoils {
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Twet_Rated = NumArray(5);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Gamma_Rated = NumArray(6);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = NumArray(7);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant = NumArray(8);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = NumArray(8);
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = NumArray(9);

state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirInletNodeNum =
Expand Down Expand Up @@ -1454,7 +1454,7 @@ namespace VariableSpeedCoils {

// Previously set by parent objects, but not user-definable
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = 4;
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant = 0.;
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = 0.;
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = 0.;

state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).WaterInletNodeNum =
Expand Down Expand Up @@ -1988,7 +1988,7 @@ namespace VariableSpeedCoils {

// Previously set by parent objects, but not user-definable
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour = 4;
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant = 0.;
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant = 0.;
state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime = 0.;

state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).AirInletNodeNum =
Expand Down Expand Up @@ -8406,12 +8406,12 @@ namespace VariableSpeedCoils {
// at the current operating conditions (sec)
Real64 Gamma; // Initial moisture evaporation rate divided by steady-state AC latent capacity
// at the current operating conditions
Real64 Twet_Rated; // Twet at rated conditions (coil air flow rate and air temperatures), sec
Real64 Gamma_Rated; // Gamma at rated conditions (coil air flow rate and air temperatures)
Real64 Twet_max; // Maximum allowed value for Twet
Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr]
Real64 HPTimeConstant; // Heat pump time constant [s]
Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to
Real64 Twet_Rated; // Twet at rated conditions (coil air flow rate and air temperatures), sec
Real64 Gamma_Rated; // Gamma at rated conditions (coil air flow rate and air temperatures)
Real64 Twet_max; // Maximum allowed value for Twet
Real64 MaxONOFFCyclesperHour; // Maximum cycling rate of heat pump [cycles/hr]
Real64 LatentCapacityTimeConstant; // Latent capacity time constant [s]
Real64 FanDelayTime; // Fan delay time, time delay for the HP's fan to
// shut off after compressor cycle off [s]
Real64 Ton; // Coil on time (sec)
Real64 Toff; // Coil off time (sec)
Expand All @@ -8425,14 +8425,14 @@ namespace VariableSpeedCoils {
Twet_Rated = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Twet_Rated;
Gamma_Rated = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).Gamma_Rated;
MaxONOFFCyclesperHour = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).MaxONOFFCyclesperHour;
HPTimeConstant = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).HPTimeConstant;
LatentCapacityTimeConstant = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).LatentCapacityTimeConstant;
FanDelayTime = state.dataVariableSpeedCoils->VarSpeedCoil(DXCoilNum).FanDelayTime;

// No moisture evaporation (latent degradation) occurs for runtime fraction of 1.0
// All latent degradation model parameters cause divide by 0.0 if not greater than 0.0
// Latent degradation model parameters initialize to 0.0 meaning no evaporation model used.
if ((RTF >= 1.0) || (QLatRated == 0.0) || (QLatActual == 0.0) || (Twet_Rated <= 0.0) || (Gamma_Rated <= 0.0) ||
(MaxONOFFCyclesperHour <= 0.0) || (HPTimeConstant <= 0.0) || (RTF <= 0.0)) {
(MaxONOFFCyclesperHour <= 0.0) || (LatentCapacityTimeConstant <= 0.0) || (RTF <= 0.0)) {
SHReff = SHRss;
return SHReff;
}
Expand Down Expand Up @@ -8466,20 +8466,20 @@ namespace VariableSpeedCoils {
// Use sucessive substitution to solve for To
aa = (Gamma * Toffa) - (0.25 / Twet) * pow_2(Gamma) * pow_2(Toffa);

To1 = aa + HPTimeConstant;
To1 = aa + LatentCapacityTimeConstant;
Error = 1.0;
while (Error > 0.001) {
To2 = aa - HPTimeConstant * (std::exp(-To1 / HPTimeConstant) - 1.0);
To2 = aa - LatentCapacityTimeConstant * (std::exp(-To1 / LatentCapacityTimeConstant) - 1.0);
Error = std::abs((To2 - To1) / To1);
To1 = To2;
}

// Adjust Sensible Heat Ratio (SHR) using Latent Heat Ratio (LHR) multiplier
// Floating underflow errors occur when -Ton/HPTimeConstant is a large negative number.
// Floating underflow errors occur when -Ton/LatentCapacityTimeConstant is a large negative number.
// Cap lower limit at -700 to avoid the underflow errors.
aa = std::exp(max(-700.0, -Ton / HPTimeConstant));
aa = std::exp(max(-700.0, -Ton / LatentCapacityTimeConstant));
// Calculate latent heat ratio multiplier
LHRmult = max(((Ton - To2) / (Ton + HPTimeConstant * (aa - 1.0))), 0.0);
LHRmult = max(((Ton - To2) / (Ton + LatentCapacityTimeConstant * (aa - 1.0))), 0.0);

// Calculate part-load or "effective" sensible heat ratio
SHReff = 1.0 - (1.0 - SHRss) * LHRmult;
Expand Down
98 changes: 49 additions & 49 deletions src/EnergyPlus/VariableSpeedCoils.hh
Original file line number Diff line number Diff line change
Expand Up @@ -86,54 +86,54 @@ namespace VariableSpeedCoils {
// condensate drain line (sec)
Real64 Gamma_Rated; // Initial moisture evaporation rate divided by steady-state
// AC latent capacity (dimensionless)
int HOTGASREHEATFLG; // whether to use hot gas reheat
Real64 HPTimeConstant; // Heat pump time constant [s]
int PLFFPLR; // index of part load curve as a function of part load ratio
std::string CoolHeatType; // Type of WatertoAirHP ie. Heating or Cooling
int VSCoilType; // type of component in plant
bool SimFlag; // Heat Pump Simulation Flag
Real64 DesignWaterMassFlowRate; // design water mass flow rate [kg/s]
Real64 DesignWaterVolFlowRate; // design water volumetric flow rate [m3/s]
Real64 DesignAirMassFlowRate; // Design Air Mass Flow Rate [kg/s]
Real64 DesignAirVolFlowRate; // Design Air Volumetric Flow Rate [m3/s]
Real64 AirVolFlowRate; // Air Volumetric Flow Rate[m3/s], real time
Real64 AirMassFlowRate; // Air Mass Flow Rate[kg/s], real time
Real64 InletAirPressure; // air inlet pressure [pa]
Real64 InletAirDBTemp; // Inlet Air Dry Bulb Temperature [C], real time
Real64 InletAirHumRat; // Inlet Air Humidity Ratio [kg/kg], real time
Real64 InletAirEnthalpy; // Inlet Air Enthalpy [J/kg], real time
Real64 OutletAirDBTemp; // Outlet Air Dry Bulb Temperature [C], real time
Real64 OutletAirHumRat; // Outlet Air Humidity Ratio [kg/kg], real time
Real64 OutletAirEnthalpy; // Outlet Air Enthalpy [J/kg], real time
Real64 WaterVolFlowRate; // Water Volumetric Flow Rate [m3/s], real time
Real64 WaterMassFlowRate; // Water Mass Flow Rate [kg/s], real time
Real64 InletWaterTemp; // Inlet Water Temperature [C]
Real64 InletWaterEnthalpy; // Inlet Water Enthalpy [J/kg]
Real64 OutletWaterTemp; // Outlet Water Temperature [C]
Real64 OutletWaterEnthalpy; // Outlet Water Enthalpy [J/kg]
Real64 Power; // Power Consumption [W]
Real64 QLoadTotal; // Load Side Total Heat Transfer Rate [W]
Real64 QSensible; // Sensible Load Side Heat Transfer Rate [W]
Real64 QLatent; // Latent Load Side Heat Transfer Rate [W]
Real64 QSource; // Source Side Heat Transfer Rate [W]
Real64 QWasteHeat; // Recoverable waste Heat Transfer Rate [W]
Real64 Energy; // Energy Consumption [J]
Real64 EnergyLoadTotal; // Load Side Total Heat Transferred [J]
Real64 EnergySensible; // Sensible Load Side Heat Transferred [J]
Real64 EnergyLatent; // Latent Load Side Heat Transferred [J]
Real64 EnergySource; // Source Side Heat Transferred [J]
Real64 COP; // Heat Pump Coefficient of Performance [-]
Real64 RunFrac; // Duty Factor
Real64 PartLoadRatio; // Part Load Ratio
Real64 RatedPowerHeat; // Rated/Ref Heating Power Consumption[W]
Real64 RatedCOPHeat; // Rated/Ref Heating COP [W/W]
Real64 RatedCapCoolSens; // Rated/Ref Sensible Cooling Capacity [W]
Real64 RatedPowerCool; // Rated/Ref Cooling Power Consumption[W]
Real64 RatedCOPCool; // Rated/Ref Cooling COP [W/W]
int AirInletNodeNum; // Node Number of the Air Inlet
int AirOutletNodeNum; // Node Number of the Air Outlet
int WaterInletNodeNum; // Node Number of the Water Onlet
int WaterOutletNodeNum; // Node Number of the Water Outlet
int HOTGASREHEATFLG; // whether to use hot gas reheat
Real64 LatentCapacityTimeConstant; // Latent capacity time constant [s]
int PLFFPLR; // index of part load curve as a function of part load ratio
std::string CoolHeatType; // Type of WatertoAirHP ie. Heating or Cooling
int VSCoilType; // type of component in plant
bool SimFlag; // Heat Pump Simulation Flag
Real64 DesignWaterMassFlowRate; // design water mass flow rate [kg/s]
Real64 DesignWaterVolFlowRate; // design water volumetric flow rate [m3/s]
Real64 DesignAirMassFlowRate; // Design Air Mass Flow Rate [kg/s]
Real64 DesignAirVolFlowRate; // Design Air Volumetric Flow Rate [m3/s]
Real64 AirVolFlowRate; // Air Volumetric Flow Rate[m3/s], real time
Real64 AirMassFlowRate; // Air Mass Flow Rate[kg/s], real time
Real64 InletAirPressure; // air inlet pressure [pa]
Real64 InletAirDBTemp; // Inlet Air Dry Bulb Temperature [C], real time
Real64 InletAirHumRat; // Inlet Air Humidity Ratio [kg/kg], real time
Real64 InletAirEnthalpy; // Inlet Air Enthalpy [J/kg], real time
Real64 OutletAirDBTemp; // Outlet Air Dry Bulb Temperature [C], real time
Real64 OutletAirHumRat; // Outlet Air Humidity Ratio [kg/kg], real time
Real64 OutletAirEnthalpy; // Outlet Air Enthalpy [J/kg], real time
Real64 WaterVolFlowRate; // Water Volumetric Flow Rate [m3/s], real time
Real64 WaterMassFlowRate; // Water Mass Flow Rate [kg/s], real time
Real64 InletWaterTemp; // Inlet Water Temperature [C]
Real64 InletWaterEnthalpy; // Inlet Water Enthalpy [J/kg]
Real64 OutletWaterTemp; // Outlet Water Temperature [C]
Real64 OutletWaterEnthalpy; // Outlet Water Enthalpy [J/kg]
Real64 Power; // Power Consumption [W]
Real64 QLoadTotal; // Load Side Total Heat Transfer Rate [W]
Real64 QSensible; // Sensible Load Side Heat Transfer Rate [W]
Real64 QLatent; // Latent Load Side Heat Transfer Rate [W]
Real64 QSource; // Source Side Heat Transfer Rate [W]
Real64 QWasteHeat; // Recoverable waste Heat Transfer Rate [W]
Real64 Energy; // Energy Consumption [J]
Real64 EnergyLoadTotal; // Load Side Total Heat Transferred [J]
Real64 EnergySensible; // Sensible Load Side Heat Transferred [J]
Real64 EnergyLatent; // Latent Load Side Heat Transferred [J]
Real64 EnergySource; // Source Side Heat Transferred [J]
Real64 COP; // Heat Pump Coefficient of Performance [-]
Real64 RunFrac; // Duty Factor
Real64 PartLoadRatio; // Part Load Ratio
Real64 RatedPowerHeat; // Rated/Ref Heating Power Consumption[W]
Real64 RatedCOPHeat; // Rated/Ref Heating COP [W/W]
Real64 RatedCapCoolSens; // Rated/Ref Sensible Cooling Capacity [W]
Real64 RatedPowerCool; // Rated/Ref Cooling Power Consumption[W]
Real64 RatedCOPCool; // Rated/Ref Cooling COP [W/W]
int AirInletNodeNum; // Node Number of the Air Inlet
int AirOutletNodeNum; // Node Number of the Air Outlet
int WaterInletNodeNum; // Node Number of the Water Onlet
int WaterOutletNodeNum; // Node Number of the Water Outlet
PlantLocation plantLoc;
// set by parent object and "pushed" to this structure in SetVSWSHPData subroutine
bool FindCompanionUpStreamCoil; // Flag to get the companion coil in Init
Expand Down Expand Up @@ -283,7 +283,7 @@ namespace VariableSpeedCoils {
: NumOfSpeeds(2), NormSpedLevel(DataHVACGlobals::MaxSpeedLevels), RatedWaterVolFlowRate(DataSizing::AutoSize),
RatedWaterMassFlowRate(DataSizing::AutoSize), RatedAirVolFlowRate(DataSizing::AutoSize), RatedCapHeat(DataSizing::AutoSize),
RatedCapCoolTotal(DataSizing::AutoSize), MaxONOFFCyclesperHour(0.0), Twet_Rated(0.0), Gamma_Rated(0.0), HOTGASREHEATFLG(0),
HPTimeConstant(0.0), PLFFPLR(0), VSCoilType(0), SimFlag(false), DesignWaterMassFlowRate(0.0), DesignWaterVolFlowRate(0.0),
LatentCapacityTimeConstant(0.0), PLFFPLR(0), VSCoilType(0), SimFlag(false), DesignWaterMassFlowRate(0.0), DesignWaterVolFlowRate(0.0),
DesignAirMassFlowRate(0.0), DesignAirVolFlowRate(0.0), AirVolFlowRate(0.0), AirMassFlowRate(0.0), InletAirPressure(0.0),
InletAirDBTemp(0.0), InletAirHumRat(0.0), InletAirEnthalpy(0.0), OutletAirDBTemp(0.0), OutletAirHumRat(0.0), OutletAirEnthalpy(0.0),
WaterVolFlowRate(0.0), WaterMassFlowRate(0.0), InletWaterTemp(0.0), InletWaterEnthalpy(0.0), OutletWaterTemp(0.0),
Expand Down
14 changes: 7 additions & 7 deletions src/EnergyPlus/WaterToAirHeatPump.cc
Original file line number Diff line number Diff line change
Expand Up @@ -450,7 +450,7 @@ namespace WaterToAirHeatPump {
}

heatPump.MaxONOFFCyclesperHour = NumArray(21);
heatPump.HPTimeConstant = NumArray(22);
heatPump.LatentCapacityTimeConstant = NumArray(22);
heatPump.FanDelayTime = NumArray(23);

TestCompSet(state, CurrentModuleObject, AlphArray(1), AlphArray(4), AlphArray(5), "Water Nodes");
Expand Down Expand Up @@ -2361,7 +2361,7 @@ namespace WaterToAirHeatPump {
// All latent degradation model parameters cause divide by 0.0 if not greater than 0.0
// Latent degradation model parameters initialize to 0.0 meaning no evaporation model used.
if ((RTF >= 1.0) || (QLatRated == 0.0) || (QLatActual == 0.0) || (heatPump.Twet_Rated <= 0.0) || (heatPump.Gamma_Rated <= 0.0) ||
(heatPump.MaxONOFFCyclesperHour <= 0.0) || (heatPump.HPTimeConstant <= 0.0) || (RTF <= 0.0)) {
(heatPump.MaxONOFFCyclesperHour <= 0.0) || (heatPump.LatentCapacityTimeConstant <= 0.0) || (RTF <= 0.0)) {
SHReff = SHRss;
return SHReff;
}
Expand Down Expand Up @@ -2395,20 +2395,20 @@ namespace WaterToAirHeatPump {
// Use sucessive substitution to solve for To
aa = (Gamma * Toffa) - (0.25 / Twet) * pow_2(Gamma) * pow_2(Toffa);

To1 = aa + heatPump.HPTimeConstant;
To1 = aa + heatPump.LatentCapacityTimeConstant;
Error = 1.0;
while (Error > 0.001) {
To2 = aa - heatPump.HPTimeConstant * (std::exp(-To1 / heatPump.HPTimeConstant) - 1.0);
To2 = aa - heatPump.LatentCapacityTimeConstant * (std::exp(-To1 / heatPump.LatentCapacityTimeConstant) - 1.0);
Error = std::abs((To2 - To1) / To1);
To1 = To2;
}

// Adjust Sensible Heat Ratio (SHR) using Latent Heat Ratio (LHR) multiplier
// Floating underflow errors occur when -Ton/HPTimeConstant is a large negative number.
// Floating underflow errors occur when -Ton/LatentCapacityTimeConstant is a large negative number.
// Cap lower limit at -700 to avoid the underflow errors.
aa = std::exp(max(-700.0, -Ton / heatPump.HPTimeConstant));
aa = std::exp(max(-700.0, -Ton / heatPump.LatentCapacityTimeConstant));
// Calculate latent heat ratio multiplier
LHRmult = max(((Ton - To2) / (Ton + heatPump.HPTimeConstant * (aa - 1.0))), 0.0);
LHRmult = max(((Ton - To2) / (Ton + heatPump.LatentCapacityTimeConstant * (aa - 1.0))), 0.0);

// Calculate part-load or "effective" sensible heat ratio
SHReff = 1.0 - (1.0 - SHRss) * LHRmult;
Expand Down
Loading

5 comments on commit 15c0d98

@nrel-bot
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9966-wshp-cycling (nealkruis) - Win64-Windows-10-VisualStudio-16: Build Failed

Failures:\n

API Test Summary

  • Failed: 10
  • notrun: 5

integration Test Summary

  • Passed: 2
  • Failed: 772

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9966-wshp-cycling (nealkruis) - x86_64-Linux-Ubuntu-22.04-gcc-11.3: OK (3398 of 3467 tests passed, 7 test warnings)

Messages:\n

  • 7 tests had: Table small diffs.
  • 25 tests had: EIO diffs.
  • 19 tests had: ESO big diffs.
  • 14 tests had: MTR big diffs.
  • 69 tests had: Table big diffs.
  • 12 tests had: AUD diffs.
  • 15 tests had: ERR diffs.
  • 4 tests had: ESO small diffs.
  • 4 tests had: RDD diffs.
  • 1 test had: MTR small diffs.

Failures:\n

regression Test Summary

  • Passed: 722
  • Failed: 69

Build Badge Test Badge

@nrel-bot-3
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9966-wshp-cycling (nealkruis) - x86_64-MacOS-10.17-clang-13.0.0: OK (3358 of 3426 tests passed, 7 test warnings)

Messages:\n

  • 7 tests had: Table small diffs.
  • 24 tests had: EIO diffs.
  • 18 tests had: ESO big diffs.
  • 14 tests had: MTR big diffs.
  • 68 tests had: Table big diffs.
  • 12 tests had: AUD diffs.
  • 14 tests had: ERR diffs.
  • 4 tests had: ESO small diffs.
  • 4 tests had: RDD diffs.
  • 1 test had: MTR small diffs.

Failures:\n

regression Test Summary

  • Passed: 703
  • Failed: 68

Build Badge Test Badge

@nrel-bot-2b
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9966-wshp-cycling (nealkruis) - x86_64-Linux-Ubuntu-22.04-gcc-11.3-IntegrationCoverage-Debug: OK (775 of 776 tests passed, 0 test warnings)

Failures:\n

integration Test Summary

  • Passed: 775
  • Failed: 1

Build Badge Test Badge Coverage Badge

@nrel-bot-2c
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

9966-wshp-cycling (nealkruis) - x86_64-Linux-Ubuntu-22.04-gcc-11.3-UnitTestsCoverage-Debug: OK (1879 of 1882 tests passed, 0 test warnings)

Failures:\n

EnergyPlusFixture Test Summary

  • Passed: 1431
  • Subprocess aborted: 1

ZoneUnitarySysTest Test Summary

  • Passed: 25
  • Subprocess aborted: 2

Build Badge Test Badge Coverage Badge

Please sign in to comment.