public static Dictionary<string, object> AdjustedBendingDesignValue(double F_b,double C_M_Fb,double C_t,double C_L,double C_F_Fb,
            double C_fu_Fb, double C_i_Fb, double C_r, double lambda, string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values
            double F_b_prime = 0;


            //Calculation logic:
            if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m = new DimensionalLumber();
                F_b_prime = m.GetAdjustedBendingDesignValue(F_b, C_M_Fb, C_t, C_L, C_F_Fb, C_fu_Fb, C_i_Fb, C_r, lambda);
            }
            else
            {
                throw new Exception("Wood member type not supported.");
            }

            
            

            return new Dictionary<string, object>
            {
                { "F_b_prime", F_b_prime }
 
            };
        }
        public static Dictionary <string, object> AdjustedBendingDesignValue(double F_b, double C_M_Fb, double C_t, double C_L, double C_F_Fb,
                                                                             double C_fu_Fb, double C_i_Fb, double C_r, double lambda, string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015")
        {
            //Default values
            double F_b_prime = 0;


            //Calculation logic:
            if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber"))
            {
                DimensionalLumber m = new DimensionalLumber();
                F_b_prime = m.GetAdjustedBendingDesignValue(F_b, C_M_Fb, C_t, C_L, C_F_Fb, C_fu_Fb, C_i_Fb, C_r, lambda);
            }
            else
            {
                throw new Exception("Wood member type not supported.");
            }



            return(new Dictionary <string, object>
            {
                { "F_b_prime", F_b_prime }
            });
        }
        public void ReturnsBendingValueDimensionalLumber()
        {
            CalcLog           log = new CalcLog();
            DimensionalLumber m   = new DimensionalLumber();

            double C_fu   = 1.0;
            double C_F    = 1.0;
            double C_M    = 1.0;
            double C_t    = 1.0;
            double C_i    = 1.0;
            double C_L    = 1.0;
            double C_r    = 1.15;
            double E_min  = 580.0;
            double F_b    = 1.05;
            double lambda = 0.8;


            double F_b_prime       = m.GetAdjustedBendingDesignValue(F_b, C_M, C_t, C_L, C_F, C_fu, C_i, C_r, lambda);
            double refValue        = 2.087;
            double actualTolerance = EvaluateActualTolerance(F_b_prime, refValue);

            Assert.LessOrEqual(actualTolerance, tolerance);
        }
        public void ReturnsBendingValueDimensionalLumber()
        {
            CalcLog log = new CalcLog();
            DimensionalLumber m = new DimensionalLumber();

            double C_fu = 1.0;
            double C_F =1.0;
            double C_M = 1.0;
            double C_t = 1.0;
            double C_i = 1.0;
            double C_L = 1.0;
            double C_r = 1.15;
            double E_min =580.0;
            double F_b = 1.05;
            double lambda =0.8;


            double F_b_prime = m.GetAdjustedBendingDesignValue(F_b,C_M, C_t, C_L, C_F, C_fu, C_i, C_r, lambda);
            double refValue = 2.087;
            double actualTolerance = EvaluateActualTolerance(F_b_prime, refValue);
            Assert.LessOrEqual(actualTolerance, tolerance);

        }