public void SnowLoadTest_SecondZone_Windswept_Success()
        {
            var buildingSite = new BuildingSiteImplementation(10);

            buildingSite.CurrentZone       = Zones.SecondZone;
            buildingSite.CurrentTopography = Topographies.Windswept;
            buildingSite.CalculateExposureCoefficient();

            var snowLoad = new SnowLoad(buildingSite, returnPeriod: 80);

            snowLoad.CalculateSnowLoad();

            Assert.AreEqual(0.9, Math.Round(snowLoad.DefaultCharacteristicSnowLoad, 3), "DefaultCharacteristicSnowLoad has wrong calculations.");
            Assert.AreEqual(0.7, Math.Round(snowLoad.VariationCoefficient, 3), "VariationCoefficient has wrong calculations.");
            Assert.AreEqual(0.983, Math.Round(snowLoad.SnowLoadForSpecificReturnPeriod, 3), "SnowLoadForSpecificReturnPeriod has wrong calculations.");
            Assert.AreEqual(2, Math.Round(snowLoad.ExceptionalSnowLoadCoefficient, 3), "ExceptionalSnowLoadCoefficient has wrong calculations.");
            Assert.AreEqual(1.965, Math.Round(snowLoad.DesignExceptionalSnowLoadForSpecificReturnPeriod, 3), "DesignExceptionalSnowLoadForSpecificReturnPeriod has wrong calculations.");
        }
        public void SnowLoadTest_FirstZone_Success()
        {
            var buildingSite = new BuildingSiteImplementation(10);

            buildingSite.AltitudeAboveSea  = 350;
            buildingSite.CurrentZone       = Zones.FirstZone;
            buildingSite.CurrentTopography = Topographies.Normal;
            buildingSite.CalculateExposureCoefficient();

            var snowLoad = new SnowLoad(buildingSite);

            snowLoad.CalculateSnowLoad();

            Assert.AreEqual(1.05, Math.Round(snowLoad.DefaultCharacteristicSnowLoad, 3), "DefaultCharacteristicSnowLoad has wrong calculations.");
            Assert.AreEqual(0.648, Math.Round(snowLoad.VariationCoefficient, 3), "VariationCoefficient has wrong calculations.");
            Assert.AreEqual(1.05, Math.Round(snowLoad.SnowLoadForSpecificReturnPeriod, 3), "SnowLoadForSpecificReturnPeriod has wrong calculations.");
            Assert.AreEqual(2, Math.Round(snowLoad.ExceptionalSnowLoadCoefficient, 3), "ExceptionalSnowLoadCoefficient has wrong calculations.");
            Assert.AreEqual(2.10, Math.Round(snowLoad.DesignExceptionalSnowLoadForSpecificReturnPeriod, 3), "DesignExceptionalSnowLoadForSpecificReturnPeriod has wrong calculations.");
        }