EGS Brachy
An egs++ user code for rapid brachytherapy calculations
Loading...
Searching...
No Matches
test.py
Go to the documentation of this file.
1"""
2
3A test for comparing the dose from a "stepped source" (i.e. superposition mode
4with variable activity) with previous calculations made when egs_brachy was in
5a known good state.
6
7"""
8import math
9import os
10import re
11
12from eb_tests.utils import (compare_3ddose_files, doses_approx_equal,
13 extract_all_doses, read3ddose)
14
15EGSINP = "stepped.egsinp"
16TIME_LIMIT_S_PER_MHZ = 1000/2993. # s / MHz
17NCOMPARE = 20
18
19def get_n_highest_dose_pairs(dose1, dose2, n=NCOMPARE):
20 return sorted(zip(dose1, dose2))[-NCOMPARE:]
21
22def compare_results(egslst, inp_name):
23
24 gold_standard = read3ddose(os.path.join(os.path.dirname(os.path.abspath(__file__)), "gold_standard.3ddose"))
25 run_doses = read3ddose(inp_name+".phantom.3ddose")
26
27 dose_pairs = get_n_highest_dose_pairs(gold_standard['doses'], run_doses['doses'])
28
29 dose_diff = [abs((a-b)/a) for a, b in dose_pairs]
30
31 doses_close = max(dose_diff) < 0.01
32
33 rd, gs = list(zip(*dose_pairs))
34 return doses_close, rd, gs
35
get_n_highest_dose_pairs(dose1, dose2, n=NCOMPARE)
Definition test.py:19