public void ExceptionalObstructionOnPitchedOrCurvedRoofTest_CalculateDriftLength_Success() { var building = BuildingImplementation.CreateBuilding(); var exceptionalObstructionOnPitchedOrCurvedRoof = new ExceptionalObstructionOnPitchedOrCurvedRoof(building, 15, 20, 1, 0.5); exceptionalObstructionOnPitchedOrCurvedRoof.CalculateDriftLength(); Assert.AreEqual(5, Math.Round(exceptionalObstructionOnPitchedOrCurvedRoof.LeftDriftLength, 3), "Drift length for roof is not calculated properly."); Assert.AreEqual(2.5, Math.Round(exceptionalObstructionOnPitchedOrCurvedRoof.RightDriftLength, 3), "Drift length for roof is not calculated properly."); }
public void ExceptionalObstructionOnPitchedOrCurvedRoofTest_CalculateSnowLoad_Success() { var building = BuildingImplementation.CreateBuilding(); building.SnowLoad.ExcepctionalSituation = true; building.SnowLoad.CurrentDesignSituation = DesignSituation.B2; var exceptionalObstructionOnPitchedOrCurvedRoof = new ExceptionalObstructionOnPitchedOrCurvedRoof(building, 15, 20, 1, 0.5); exceptionalObstructionOnPitchedOrCurvedRoof.CalculateSnowLoad(); Assert.AreEqual(2, Math.Round(exceptionalObstructionOnPitchedOrCurvedRoof.LeftSnowLoad, 3), "Snow load for roof is not calculated properly."); Assert.AreEqual(1, Math.Round(exceptionalObstructionOnPitchedOrCurvedRoof.RightSnowLoad, 3), "Snow load for roof is not calculated properly."); }
public void ExceptionalObstructionOnPitchedOrCurvedRoofTest_Constructor_Success() { var building = BuildingImplementation.CreateBuilding(); var exceptionalObstructionOnPitchedOrCurvedRoof = new ExceptionalObstructionOnPitchedOrCurvedRoof(building, 15, 20, 1, 0.5); Assert.IsNotNull(exceptionalObstructionOnPitchedOrCurvedRoof, "ExceptionalObstructionOnPitchedOrCurvedRoof should be created."); Assert.AreEqual(15, exceptionalObstructionOnPitchedOrCurvedRoof.LeftWidth, "Width should be set at construction time."); Assert.AreEqual(20, exceptionalObstructionOnPitchedOrCurvedRoof.RightWidth, "Width should be set at construction time."); Assert.AreEqual(1, exceptionalObstructionOnPitchedOrCurvedRoof.LeftHeightDifference, "Height should be set at construction time."); Assert.AreEqual(0.5, exceptionalObstructionOnPitchedOrCurvedRoof.RightHeightDifference, "Height should be set at construction time."); }
public IResult Calculate() { BuildingSite buildingSite = GetBuildingSite(); SnowLoad snowLoad = GetSnowLoad(buildingSite); Building building = GetBuilding(snowLoad); ExceptionalObstructionOnPitchedOrCurvedRoof exceptionalObstructionOnPitchedOrCurvedRoof = GetExceptionalObstructionOnPitchedOrCurvedRoof(building); if (!ExposureCoefficient.HasValue) { buildingSite.CalculateExposureCoefficient(); } snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); exceptionalObstructionOnPitchedOrCurvedRoof.CalculateDriftLength(); exceptionalObstructionOnPitchedOrCurvedRoof.CalculateSnowLoad(); var result = new Result(); result.Properties.Add("C_e_", buildingSite.ExposureCoefficient); result.Properties.Add("s_k_", snowLoad.DefaultCharacteristicSnowLoad); result.Properties.Add("V", snowLoad.VariationCoefficient); result.Properties.Add("C_esl_", snowLoad.ExceptionalSnowLoadCoefficient); result.Properties.Add("s_n_", snowLoad.SnowLoadForSpecificReturnPeriod); result.Properties.Add("s_Ad_", snowLoad.DesignExceptionalSnowLoadForSpecificReturnPeriod); result.Properties.Add("t_i_", building.InternalTemperature); result.Properties.Add("∆_t_", building.TempreatureDifference); result.Properties.Add("U", building.OverallHeatTransferCoefficient); result.Properties.Add("C_t_", building.ThermalCoefficient); result.Properties.Add("l_s1_", exceptionalObstructionOnPitchedOrCurvedRoof.LeftDriftLength); result.Properties.Add("l_s2_", exceptionalObstructionOnPitchedOrCurvedRoof.RightDriftLength); result.Properties.Add("μ_1_", exceptionalObstructionOnPitchedOrCurvedRoof.LeftShapeCoefficient); result.Properties.Add("μ_2_", exceptionalObstructionOnPitchedOrCurvedRoof.RightShapeCoefficient); result.Properties.Add("s_1_", exceptionalObstructionOnPitchedOrCurvedRoof.LeftSnowLoad); result.Properties.Add("s_2_", exceptionalObstructionOnPitchedOrCurvedRoof.RightSnowLoad); return(result); }
public ExceptionalSnowLoadObstructionOnPitchedOrCurvedRoof() { BuildingData = new BuildingData(); ExceptionalObstructionOnPitchedOrCurvedRoof = new ExceptionalObstructionOnPitchedOrCurvedRoof(BuildingData.Building, 0, 0, 0, 0); }