def test_evaluate(self):

        directory, script_name = os.path.split(os.path.abspath(__file__))
        workbook_name = os.path.join(directory, "test_model.xlsx")
        sheet = "Sheet1"
        input_parameters = {
            "a": ("B2", sheet),
            "b": ("B3", sheet),
            "theta": ("B4", sheet)
        }
        output_parameters = {"feval": ("C2", sheet)}

        excel_black_obj = ExcelBlackBoxEvaluator(input_parameters,
                                                 output_parameters,
                                                 workbook_name, ExcelDriverCOM)

        to_evaluate = {"a": 2.0, "b": 2.0, "theta": math.pi}

        result = excel_black_obj.evaluate(to_evaluate)

        self.assertIsNotNone(result)
        expected_result = {"feval": 2.0 * math.sin((1 / 2.0) * math.pi)}

        self.assertEquals(expected_result, result)

        excel_black_obj.close()
    def test_evaluate_dummy(self):
        sheet = "sheet1"
        input_parameters = {"a": ("B2", sheet), "b": ("B3", sheet), "theta": ("B4", sheet)}
        output_parameters = {"feval": ("C2", sheet)}
        workbook_name = "test_workbook.xlsx"

        excel_black_obj = ExcelBlackBoxEvaluator(input_parameters, output_parameters, workbook_name)

        to_evaluate = {"a": 2.0, "b": 2.0, "theta": math.pi}

        result = excel_black_obj.evaluate(to_evaluate)

        self.assertIsNotNone(result)
        expected_result = {"feval": 2.0 * math.sin((1/2.0) * math.pi)}

        self.assertEquals(expected_result, result)
    def test_evaluate(self):

        directory, script_name = os.path.split(os.path.abspath(__file__))
        workbook_name = os.path.join(directory, "test_model.xlsx")
        sheet = "Sheet1"
        input_parameters = {"a": ("B2", sheet), "b": ("B3", sheet), "theta": ("B4", sheet)}
        output_parameters = {"feval": ("C2", sheet)}

        excel_black_obj = ExcelBlackBoxEvaluator(input_parameters, output_parameters, workbook_name, ExcelDriverCOM)

        to_evaluate = {"a": 2.0, "b": 2.0, "theta": math.pi}

        result = excel_black_obj.evaluate(to_evaluate)

        self.assertIsNotNone(result)
        expected_result = {"feval": 2.0 * math.sin((1/2.0) * math.pi)}

        self.assertEquals(expected_result, result)

        excel_black_obj.close()
    def test_evaluate_dummy(self):
        sheet = "sheet1"
        input_parameters = {
            "a": ("B2", sheet),
            "b": ("B3", sheet),
            "theta": ("B4", sheet)
        }
        output_parameters = {"feval": ("C2", sheet)}
        workbook_name = "test_workbook.xlsx"

        excel_black_obj = ExcelBlackBoxEvaluator(input_parameters,
                                                 output_parameters,
                                                 workbook_name)

        to_evaluate = {"a": 2.0, "b": 2.0, "theta": math.pi}

        result = excel_black_obj.evaluate(to_evaluate)

        self.assertIsNotNone(result)
        expected_result = {"feval": 2.0 * math.sin((1 / 2.0) * math.pi)}

        self.assertEquals(expected_result, result)
def main(input_spreadsheet_path, csv_output_file_name):

    total_evals_i = 1
    for variable in order_to_evaluate:
        total_evals_i *= len(ranges_to_evaluate[variable])

    print("Will make %s evaluations of the spreadsheet" % total_evals_i)

    i = 0
    sex = ranges_to_evaluate["Sex"]
    age_years = ranges_to_evaluate["Age years"]
    race = ranges_to_evaluate["Race"]
    tc = ranges_to_evaluate["Total Cholesterol"]
    hdl = ranges_to_evaluate["HDL-Cholesterol"]
    sbp = ranges_to_evaluate["Systolic Blood Pressure"]
    bpt = ranges_to_evaluate["Treatment of High Blood Pressure"]
    diabetes = ranges_to_evaluate["Diabetes"]
    smoker = ranges_to_evaluate["Smoker"]

    with open(csv_output_file_name, "wb") as fw:
        csv_writer = csv.writer(fw)
        csv_writer.writerow(["row"] + order_to_evaluate + output_order_to_read)
        for j in range(len(sex)):
            for k in range(len(age_years)):
                for l in range(len(race)):
                    for m in range(len(tc)):
                        for n in range(len(hdl)):
                            for o in range(len(sbp)):
                                for p in range(len(bpt)):
                                    for q in range(len(diabetes)):
                                        for r in range(len(smoker)):

                                            dict_to_evaluate = {"Sex": sex[j], "Age years": age_years[k],
                                                                "Race": race[l], "Total Cholesterol": tc[m],
                                                                "HDL-Cholesterol": hdl[n],
                                                                "Systolic Blood Pressure": sbp[o],
                                                                "Treatment of High Blood Pressure": bpt[p],
                                                                "Diabetes": diabetes[q],
                                                                "Smoker": smoker[r],
                                                                }

                                            row_to_write = []
                                            for variable in order_to_evaluate:
                                                row_to_write += [dict_to_evaluate[variable]]

                                            if i % 100 == 0:
                                                if i == 0:
                                                    pass
                                                else:
                                                    print("Processed %s evaluations" % (i + 1,))
                                                    excel_black_obj.close()

                                                excel_black_obj = ExcelBlackBoxEvaluator(input_dict, output_dict,
                                                                                         input_spreadsheet_path, ExcelDriverCOM)

                                            result_dict = excel_black_obj.evaluate(dict_to_evaluate)

                                            result_list = []
                                            for output_variable in output_order_to_read:
                                                result_list += [result_dict[output_variable]]

                                            csv_writer.writerow([i + 1] + row_to_write + result_list)
                                            # if i == 5001:
                                            #     excel_black_obj.close()
                                            #     exit()

                                            i += 1
Example #6
0
def main(input_spreadsheet_path, csv_output_file_name):

    total_evals_i = 1
    for variable in order_to_evaluate:
        total_evals_i *= len(ranges_to_evaluate[variable])

    print("Will make %s evaluations of the spreadsheet" % total_evals_i)

    i = 0
    sex = ranges_to_evaluate["Sex"]
    age_years = ranges_to_evaluate["Age years"]
    race = ranges_to_evaluate["Race"]
    tc = ranges_to_evaluate["Total Cholesterol"]
    hdl = ranges_to_evaluate["HDL-Cholesterol"]
    sbp = ranges_to_evaluate["Systolic Blood Pressure"]
    bpt = ranges_to_evaluate["Treatment of High Blood Pressure"]
    diabetes = ranges_to_evaluate["Diabetes"]
    smoker = ranges_to_evaluate["Smoker"]

    with open(csv_output_file_name, "wb") as fw:
        csv_writer = csv.writer(fw)
        csv_writer.writerow(["row"] + order_to_evaluate + output_order_to_read)
        for j in range(len(sex)):
            for k in range(len(age_years)):
                for l in range(len(race)):
                    for m in range(len(tc)):
                        for n in range(len(hdl)):
                            for o in range(len(sbp)):
                                for p in range(len(bpt)):
                                    for q in range(len(diabetes)):
                                        for r in range(len(smoker)):

                                            dict_to_evaluate = {
                                                "Sex":
                                                sex[j],
                                                "Age years":
                                                age_years[k],
                                                "Race":
                                                race[l],
                                                "Total Cholesterol":
                                                tc[m],
                                                "HDL-Cholesterol":
                                                hdl[n],
                                                "Systolic Blood Pressure":
                                                sbp[o],
                                                "Treatment of High Blood Pressure":
                                                bpt[p],
                                                "Diabetes":
                                                diabetes[q],
                                                "Smoker":
                                                smoker[r],
                                            }

                                            row_to_write = []
                                            for variable in order_to_evaluate:
                                                row_to_write += [
                                                    dict_to_evaluate[variable]
                                                ]

                                            if i % 100 == 0:
                                                if i == 0:
                                                    pass
                                                else:
                                                    print(
                                                        "Processed %s evaluations"
                                                        % (i + 1, ))
                                                    excel_black_obj.close()

                                                excel_black_obj = ExcelBlackBoxEvaluator(
                                                    input_dict, output_dict,
                                                    input_spreadsheet_path,
                                                    ExcelDriverCOM)

                                            result_dict = excel_black_obj.evaluate(
                                                dict_to_evaluate)

                                            result_list = []
                                            for output_variable in output_order_to_read:
                                                result_list += [
                                                    result_dict[
                                                        output_variable]
                                                ]

                                            csv_writer.writerow([i + 1] +
                                                                row_to_write +
                                                                result_list)
                                            # if i == 5001:
                                            #     excel_black_obj.close()
                                            #     exit()

                                            i += 1