public void BlockShearReturnsValue()
 {
     AffectedElement element = new AffectedElement(36.0, 58.0);
     double phiR_n = element.GetBlockShearStrength(39.0, 26.0, 7.0, true);
     double refValue = 938.0;
     double actualTolerance = EvaluateActualTolerance(phiR_n, refValue);
     Assert.LessOrEqual(actualTolerance, tolerance);
 }
        public void AffectedElementReturnsWhitmoreSectionWidth()
        {
            AffectedElement el = new AffectedElement();

                double b_Whitmore = el.GetWhitmoreSectionWidth(18.0, 3.0);
                double refValue = 23.8;
                double actualTolerance = EvaluateActualTolerance(b_Whitmore, refValue);
                Assert.LessOrEqual(actualTolerance, tolerance);
            
        }
        public static Dictionary<string, object> WhitmoreSectionWidth(double l, double b_con, string Code = "AISC360-10")
        {
            //Default values
            double b_Whitmore = 0;


            //Calculation logic:
            AffectedElement el = new AffectedElement();
            b_Whitmore = el.GetWhitmoreSectionWidth(l, b_con);

            return new Dictionary<string, object>
            {
                { "b_Whitmore", b_Whitmore }
 
            };
        }
        public static Dictionary<string, object> GussetPlateConfigurationCompactness(double t_g, double c_Gusset, double F_y, double E, double l_1, string Code = "AISC360-10")
        {
            //Default values
            bool IsGussetCompactConfiguration = false;


            //Calculation logic:
            AffectedElement el = new AffectedElement();
            IsGussetCompactConfiguration = el.IsGussetPlateConfigurationCompact(t_g, c_Gusset, F_y, E, l_1);

            return new Dictionary<string, object>
            {
                { "GussetPlateConfigurationCompactness", IsGussetCompactConfiguration }
 
            };
        }
        public static Dictionary<string, object> GussetPlateEffectiveCompressionLength(string GussetPlateConfigurationId, double l_1, double l_2, bool IsGussetCompactConfiguration = false, string Code = "AISC360-10")
        {
            //Default values
            double KL_gusset = 0;


            //Calculation logic:
            AffectedElement el = new AffectedElement();
            GussetPlateConfiguration conf = ParseGussetConfiguration(GussetPlateConfigurationId, IsGussetCompactConfiguration);
            KL_gusset = el.GetGussetPlateEffectiveCompressionLength(conf, l_1, l_2);

            return new Dictionary<string, object>
            {
                { "KL_gusset", KL_gusset }
 
            };
        }
        public static Dictionary<string, object> BlockShearStrength(double A_gv, double A_nv, double A_nt, double F_y, double F_u, string StressDistibutionType, 
            string Code = "AISC360-10")
        {
            //Default values

            bool StressIsUniform=false;
            if (StressDistibutionType=="Uniform")
            {
                StressIsUniform = true;
            }

            //Calculation logic:
            AffectedElement element = new AffectedElement(F_y, F_u);
            double phiR_n = element.GetBlockShearStrength(A_gv, A_nv, A_nt, StressIsUniform);

            return new Dictionary<string, object>
            {
                { "phiR_n", phiR_n }
 
            };
        }