if not noExec: caseInputFile = os.path.join(testBuildDirectory, caseName + ".fst") returnCode = openfastDrivers.runOpenfastCase(caseInputFile, executable) if returnCode != 0: rtl.exitWithError("") ### Build the filesystem navigation variables for running the regression test # testing on file 2. Gives each observer and sweep of frequency ranges localOutFile = os.path.join(testBuildDirectory, caseName + "_2.out") baselineOutFile = os.path.join(targetOutputDirectory, caseName + "_2.out") rtl.validateFileOrExit(localOutFile) rtl.validateFileOrExit(baselineOutFile) testData, testInfo, testPack = pass_fail.readFASTOut(localOutFile) baselineData, baselineInfo, _ = pass_fail.readFASTOut(baselineOutFile) performance = pass_fail.calculateNorms(testData, baselineData) normalizedNorm = performance[:, 1] # export all case summaries results = list(zip(testInfo["attribute_names"], [*performance])) results_max = performance.max(axis=0) exportCaseSummary(testBuildDirectory, caseName, results, results_max, tolerance) # failing case if not pass_fail.passRegressionTest(normalizedNorm, tolerance): if plotError: from errorPlotting import finalizePlotDirectory, plotOpenfastError ixFailChannels = [ i for i in range(len(testInfo["attribute_names"])) if normalizedNorm[i] > tolerance
if not noExec: caseInputFile = os.path.join(testBuildDirectory, "bd_driver.inp") returnCode = openfastDrivers.runBeamdynDriverCase(caseInputFile, executable) if returnCode != 0: rtl.exitWithError("") ### Build the filesystem navigation variables for running the regression test localOutFile = os.path.join(testBuildDirectory, "bd_driver.out") baselineOutFile = os.path.join(targetOutputDirectory, "bd_driver.out") rtl.validateFileOrExit(localOutFile) rtl.validateFileOrExit(baselineOutFile) testData, testInfo, testPack = pass_fail.readFASTOut(localOutFile) baselineData, baselineInfo, _ = pass_fail.readFASTOut(baselineOutFile) relativeNorm, maxNorm = pass_fail.calculateNorms(testData, baselineData, tolerance) # export all case summaries results = list(zip(testInfo["attribute_names"], relativeNorm, maxNorm)) exportCaseSummary(testBuildDirectory, caseName, results) # failing case if not pass_fail.passRegressionTest(relativeNorm, tolerance): if plotError: from errorPlotting import initializePlotDirectory, plotOpenfastError failChannels = [ channel for i, channel in enumerate(testInfo["attribute_names"]) if relativeNorm[i] > tolerance ] failRelNorm = [ relativeNorm[i]