public void ExampleTest3_CalculateSnowLoad_Success() { var buildingSite = new BuildingSite(Zones.FirstZone, Topographies.Normal, 127); buildingSite.CalculateExposureCoefficient(); var snowLoad = new SnowLoad(buildingSite, DesignSituation.B2, true); snowLoad.CalculateSnowLoad(); var building = new Building(snowLoad); building.CalculateThermalCoefficient(); var roofAbuttingToTallerConstruction5Degrees = new ExceptionalRoofAbuttingToTallerConstruction(building, 12, 14.6, 4.5, 5); roofAbuttingToTallerConstruction5Degrees.CalculateDriftLength(); roofAbuttingToTallerConstruction5Degrees.CalculateSnowLoad(); var roofAbuttingToTallerConstruction35Degrees = new ExceptionalRoofAbuttingToTallerConstruction(building, 12, 14.6, 4.5, 35); roofAbuttingToTallerConstruction35Degrees.CalculateDriftLength(); roofAbuttingToTallerConstruction35Degrees.CalculateSnowLoad(); Assert.AreEqual(14.6, Math.Round(roofAbuttingToTallerConstruction5Degrees.DriftLength, 3), "Drift length is not calculated properly."); Assert.AreEqual(1.4, Math.Round(roofAbuttingToTallerConstruction5Degrees.SnowLoadNearTheTop, 3), "Snow load for roof is not calculated properly."); Assert.AreEqual(1.4, Math.Round(roofAbuttingToTallerConstruction5Degrees.SnowLoadNearTheEdge, 3), "Snow load for roof is not calculated properly."); Assert.AreEqual(0, Math.Round(roofAbuttingToTallerConstruction35Degrees.SnowLoadNearTheTop, 3), "Snow load for roof is not calculated properly."); Assert.AreEqual(1.167, Math.Round(roofAbuttingToTallerConstruction35Degrees.SnowLoadNearTheEdge, 3), "Snow load for roof is not calculated properly."); }
public IResult Calculate() { BuildingSite buildingSite = GetBuildingSite(); SnowLoad snowLoad = GetSnowLoad(buildingSite); Building building = GetBuilding(snowLoad); ExceptionalSnowBehindParapet exceptionalSnowBehindParapet = GetExceptionalSnowBehindParapet(building); if (!ExposureCoefficient.HasValue) { buildingSite.CalculateExposureCoefficient(); } snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); exceptionalSnowBehindParapet.CalculateDriftLength(); exceptionalSnowBehindParapet.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_s_", exceptionalSnowBehindParapet.DriftLength); result.Properties.Add("μ_1_", exceptionalSnowBehindParapet.ShapeCoefficient); result.Properties.Add("s", exceptionalSnowBehindParapet.SnowLoad); return(result); }
public IResult Calculate() { BuildingSite buildingSite = GetBuildingSite(); SnowLoad snowLoad = GetSnowLoad(buildingSite); Building building = GetBuilding(snowLoad); ExceptionalMultiSpanRoof exceptionalMultiSpanRoof = GetExceptionalMultiSpanRoof(building); if (!ExposureCoefficient.HasValue) { buildingSite.CalculateExposureCoefficient(); } snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); exceptionalMultiSpanRoof.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("b_3_", exceptionalMultiSpanRoof.HorizontalDimensionOfThreeSlopes); result.Properties.Add("μ_1_", exceptionalMultiSpanRoof.ShapeCoefficient); result.Properties.Add("s", exceptionalMultiSpanRoof.SnowLoad); return(result); }
public IResult Calculate() { BuildingSite buildingSite = GetBuildingSite(); SnowLoad snowLoad = GetSnowLoad(buildingSite); Building building = GetBuilding(snowLoad); DriftingAtProjectionsObstructions driftingAtProjectionsObstructions = GetDriftingAtProjectionsObstructions(building); if (!ExposureCoefficient.HasValue) { buildingSite.CalculateExposureCoefficient(); } snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); driftingAtProjectionsObstructions.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("μ_1_", driftingAtProjectionsObstructions.FirstShapeCoefficient); result.Properties.Add("μ_2_", driftingAtProjectionsObstructions.SecondShapeCoefficient); result.Properties.Add("l_s_", driftingAtProjectionsObstructions.DriftLength); result.Properties.Add("s_2_", driftingAtProjectionsObstructions.SnowLoadOnRoofValue); result.Properties.Add("s_1_", driftingAtProjectionsObstructions.SnowLoadOnRoofValueAtTheEnd); return(result); }
public void CalculateExposureCoefficientTest_NoneTopography_Success() { var buildingSite = new BuildingSite(currentTopography: Topographies.None); buildingSite.CalculateExposureCoefficient(); Assert.AreEqual(1.2, buildingSite.ExposureCoefficient, "Exposure coefficient is wrong."); }
public void CalculateExposureCoefficientTest_ShelteredTopography_Success() { var buildingSite = new BuildingSite(); buildingSite.CurrentTopography = TopographyEnum.Sheltered; buildingSite.CalculateExposureCoefficient(); Assert.AreEqual(1.2, buildingSite.ExposureCoefficient, "Exposure coefficient is wrong."); }
public void CalculateExposureCoefficientTest_WindsweptTopography_Success() { var buildingSite = new BuildingSite(); buildingSite.CurrentTopography = TopographyEnum.Windswept; buildingSite.CalculateExposureCoefficient(); Assert.AreEqual(0.8, buildingSite.ExposureCoefficient, "Exposure coefficient is wrong."); }
public void ExampleTest4_CalculateSnowLoad_Success() { var buildingSite = new BuildingSite(Zones.SecondZone, Topographies.Normal, altitudeAboveSea: 175); var snowLoad = new SnowLoad(buildingSite); var building = new Building(snowLoad); var monopitchRoof = new MonopitchRoof(building, 10); buildingSite.CalculateExposureCoefficient(); snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); monopitchRoof.CalculateSnowLoad(); Assert.AreEqual(0.72, Math.Round(monopitchRoof.SnowLoadOnRoofValue, 3), "Snow load is not calculated properly."); }
public void ExampleTest2_CalculateSnowLoad_Success() { var buildingSite = new BuildingSite(Zones.ThirdZone, Topographies.Normal, 360); var snowLoad = new SnowLoad(buildingSite); var building = new Building(snowLoad); var monopitchRoof = new MonopitchRoof(building, 5); buildingSite.CalculateExposureCoefficient(); snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); monopitchRoof.CalculateSnowLoad(); Assert.AreEqual(1.248, Math.Round(monopitchRoof.SnowLoadOnRoofValue, 3), "Snow load for roof is not calculated properly."); }
public void ExampleTest1_CalculateSnowLoad_Success() { var buildingSite = new BuildingSite(Zones.FirstZone, Topographies.Normal, 127); buildingSite.CalculateExposureCoefficient(); var snowLoad = new SnowLoad(buildingSite); snowLoad.CalculateSnowLoad(); var building = new Building(snowLoad); building.CalculateThermalCoefficient(); var pitchedRoof = new PitchedRoof(building, 35, 5); pitchedRoof.CalculateSnowLoad(); Assert.AreEqual(0.467, Math.Round(pitchedRoof.LeftRoof.SnowLoadOnRoofValue, 3), "Snow load for left roof is not calculated properly."); Assert.AreEqual(0.56, Math.Round(pitchedRoof.RightRoof.SnowLoadOnRoofValue, 3), "Snow load for right roof is not calculated properly."); }
public void ExampleTest2_CalculateExceptionalSnowLoad_Success() { var buildingSite = new BuildingSite(ZoneEnum.ThirdZone, TopographyEnum.Normal, 360); buildingSite.CalculateExposureCoefficient(); var snowLoad = new SnowLoad(buildingSite, DesignSituation.B2, true); snowLoad.CalculateSnowLoad(); var building = new Building(snowLoad); building.CalculateThermalCoefficient(); var exceptionalSnowBehindParapetAtEaves = new ExceptionalSnowBehindParapetAtEaves(building, 6, 12, 1); exceptionalSnowBehindParapetAtEaves.CalculateDriftLength(); exceptionalSnowBehindParapetAtEaves.CalculateSnowLoad(); Assert.AreEqual(5, Math.Round(exceptionalSnowBehindParapetAtEaves.DriftLength, 3), "Drift length is not calculated properly."); Assert.AreEqual(2, Math.Round(exceptionalSnowBehindParapetAtEaves.SnowLoad, 3), "Snow load for roof is not calculated properly."); }
public IResult Calculate() { BuildingSite buildingSite = GetBuildingSite(); SnowLoad snowLoad = GetSnowLoad(buildingSite); Building building = GetBuilding(snowLoad); PitchedRoof pitchedRoof = GetPitchedRoof(building); if (!ExposureCoefficient.HasValue) { buildingSite.CalculateExposureCoefficient(); } snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); pitchedRoof.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,1_", pitchedRoof.LeftRoof.ShapeCoefficient); result.Properties.Add("μ_r,1_", pitchedRoof.RightRoof.ShapeCoefficient); result.Properties.Add("s_l,I_", pitchedRoof.LeftRoofCasesSnowLoad[1]); result.Properties.Add("s_r,I_", pitchedRoof.RightRoofCasesSnowLoad[1]); result.Properties.Add("s_l,II_", pitchedRoof.LeftRoofCasesSnowLoad[2]); result.Properties.Add("s_r,II_", pitchedRoof.RightRoofCasesSnowLoad[2]); result.Properties.Add("s_l,III_", pitchedRoof.LeftRoofCasesSnowLoad[3]); result.Properties.Add("s_r,III_", pitchedRoof.RightRoofCasesSnowLoad[3]); return(result); }
public IResult Calculate() { BuildingSite buildingSite = GetBuildingSite(); SnowLoad snowLoad = GetSnowLoad(buildingSite); Building building = GetBuilding(snowLoad); RoofAbuttingToTallerConstruction roofAbuttingToTallerConstruction = GetRoofAbuttingToTallerConstruction(building); if (!ExposureCoefficient.HasValue) { buildingSite.CalculateExposureCoefficient(); } snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); roofAbuttingToTallerConstruction.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("μ_s_", roofAbuttingToTallerConstruction.ShapeCoefficientSlidingSnow); result.Properties.Add("μ_w_", roofAbuttingToTallerConstruction.ShapeCoefficientWind); result.Properties.Add("μ_2_", roofAbuttingToTallerConstruction.ShapeCoefficient); result.Properties.Add("μ_1_", roofAbuttingToTallerConstruction.ShapeCoefficientAtTheEnd); result.Properties.Add("l_s_", roofAbuttingToTallerConstruction.DriftLength); result.Properties.Add("s_I_", roofAbuttingToTallerConstruction.SnowLoadsNearTallerBuilding[1]); result.Properties.Add("s_l,II_", roofAbuttingToTallerConstruction.SnowLoadsNearTallerBuilding[2]); result.Properties.Add("s_r,II_", roofAbuttingToTallerConstruction.SnowLoadOnRoofValueAtTheEnd); return(result); }
public void ExampleTest2_CalculateSnowOverhanging_Success() { var buildingSite = new BuildingSite(Zones.ThirdZone, Topographies.Normal, 360); buildingSite.CalculateExposureCoefficient(); var snowLoad = new SnowLoad(buildingSite, snowDensity: 3); snowLoad.CalculateSnowLoad(); var building = new Building(snowLoad); building.CalculateThermalCoefficient(); var monopitchRoof = new MonopitchRoof(building, 5); monopitchRoof.CalculateSnowLoad(); var snowOverhanging = new SnowOverhanging(building, monopitchRoof.SnowLoadOnRoofValue); snowOverhanging.CalculateSnowLoad(); Assert.AreEqual(0.648, Math.Round(snowOverhanging.SnowLoad, 3), "Snow overhanging is not calculated properly."); }
public IResult Calculate() { BuildingSite buildingSite = GetBuildingSite(); SnowLoad snowLoad = GetSnowLoad(buildingSite); Building building = GetBuilding(snowLoad); MultiSpanRoof multiSpanRoof = GetMultiSpanRoof(building); if (!ExposureCoefficient.HasValue) { buildingSite.CalculateExposureCoefficient(); } snowLoad.CalculateSnowLoad(); building.CalculateThermalCoefficient(); multiSpanRoof.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("μ_1_(α_1_)", multiSpanRoof.LeftRoof.ShapeCoefficient); result.Properties.Add("μ_1_(α_2_)", multiSpanRoof.RightRoof.ShapeCoefficient); result.Properties.Add("μ_2_(α)", multiSpanRoof.ShapeCoefficient); result.Properties.Add("s(α_1_)", multiSpanRoof.LeftRoof.SnowLoadOnRoofValue); result.Properties.Add("s(α_2_)", multiSpanRoof.RightRoof.SnowLoadOnRoofValue); result.Properties.Add("s_middle_", multiSpanRoof.SnowLoadOnMiddleRoof); return(result); }