public void DougFirReturnsBendingReferenceValue() { CalcLog log = new CalcLog(); VisuallyGradedDimensionLumber dl = new VisuallyGradedDimensionLumber("DOUGLAS FIR-LARCH (NORTH)", "Stud", "2 in. & wider", log); double F_b = dl.F_b; double refValue = 650.0; double actualTolerance = EvaluateActualTolerance(F_b, refValue); Assert.LessOrEqual(actualTolerance, tolerance); }
public static Dictionary <string, object> ReferenceValues(string WoodSpeciesId, string CommercialGradeId, string SizeClassId = "2 in. & wider", string WoodMemberType = "SawnDimensionLumber", string Code = "NDS2015") { //Default values double F_b = 0; double F_c = 0; double F_t = 0; double F_v = 0; double E = 0; double E_min = 0; double F_cPerp = 0; double G = 0.0; //Calculation logic: if (WoodMemberType.Contains("Sawn") && WoodMemberType.Contains("Lumber")) { CalcLog log = new CalcLog(); VisuallyGradedDimensionLumber dl = new VisuallyGradedDimensionLumber(WoodSpeciesId, CommercialGradeId, SizeClassId, log); F_b = dl.F_b / 1000.0; //All Dynamo nodes use ksi units by default F_c = dl.F_cParal / 1000.0; //All Dynamo nodes use ksi units by default F_t = dl.F_t / 1000.0; //All Dynamo nodes use ksi units by default F_v = dl.F_v / 1000.0; //All Dynamo nodes use ksi units by default E = dl.E / 1000.0; //All Dynamo nodes use ksi units by default E_min = dl.E_min / 1000.0; //All Dynamo nodes use ksi units by default F_cPerp = dl.F_cPerp / 1000.0; //All Dynamo nodes use ksi units by default G = dl.G; } else { throw new Exception("Wood member type not supported."); } return(new Dictionary <string, object> { { "F_b", F_b } , { "F_c", F_c } , { "F_t", F_t } , { "F_v", F_v } , { "E", E } , { "E_min", E_min } , { "F_cPerp", F_cPerp } , { "G", G } }); }