@@ -44,13 +44,14 @@ def test_solver_monitors(new_solver_session):
44
44
"point-vel-rplot" ,
45
45
]
46
46
47
- assert (
48
- sorted (solver .settings .solution .monitor .report_plots ())
49
- == ordered_report_plot_names
47
+ assert timeout_loop (
48
+ lambda : sorted (solver .settings .solution .monitor .report_plots ())
49
+ == ordered_report_plot_names ,
50
+ 5 ,
50
51
)
51
52
52
53
# monitor set names unavailable without data
53
- assert len (solver .monitors .get_monitor_set_names ()) == 0
54
+ assert timeout_loop ( lambda : len (solver .monitors .get_monitor_set_names ()) == 0 , 5 )
54
55
55
56
import_data = examples .download_file (
56
57
file_name = "exhaust_system.dat.h5" , directory = "pyfluent/exhaust_system"
@@ -59,34 +60,44 @@ def test_solver_monitors(new_solver_session):
59
60
solver .file .read_data (file_name = import_data )
60
61
61
62
# monitor set names remains unavailable after loading data
62
- assert len (solver .monitors .get_monitor_set_names ()) == 0
63
+ assert timeout_loop ( lambda : len (solver .monitors .get_monitor_set_names ()) == 0 , 5 )
63
64
64
65
# monitor set names becomes available after initializing
65
66
solver .solution .initialization .hybrid_initialize ()
66
67
67
68
monitor_set_names = ordered_report_plot_names + ["residual" ]
68
- assert sorted (solver .monitors .get_monitor_set_names ()) == sorted (monitor_set_names )
69
+ assert timeout_loop (
70
+ lambda : sorted (solver .monitors .get_monitor_set_names ())
71
+ == sorted (monitor_set_names ),
72
+ 5 ,
73
+ )
69
74
70
75
# no data in monitors at this point
71
- assert all (
72
- all (
73
- len (elem ) == 0
74
- for elem in solver .monitors .get_monitor_set_data (monitor_set_name = name )
75
- )
76
- for name in monitor_set_names
77
- ), "One or more monitor sets contain non-empty elements."
76
+ def all_elements_empty (name ):
77
+ monitor_data = solver .monitors .get_monitor_set_data (monitor_set_name = name )
78
+ return all (len (elem ) == 0 for elem in monitor_data )
79
+
80
+ for name in monitor_set_names :
81
+ assert timeout_loop (
82
+ all_elements_empty ,
83
+ timeout = 5 ,
84
+ args = (name ,),
85
+ ), f"Monitor set '{ name } ' contains non-empty elements."
78
86
79
87
# run the solver...
80
88
solver .solution .run_calculation .iterate (iter_count = 1 )
81
89
82
90
# ...data is in monitors
83
- assert all (
84
- all (
85
- len (elem ) != 0
86
- for elem in solver .monitors .get_monitor_set_data (monitor_set_name = name )
87
- )
88
- for name in monitor_set_names
89
- ), "One or more monitor sets contain empty elements."
91
+ def all_elements_non_empty (name ):
92
+ monitor_data = solver .monitors .get_monitor_set_data (monitor_set_name = name )
93
+ return all (len (elem ) != 0 for elem in monitor_data )
94
+
95
+ for name in monitor_set_names :
96
+ assert timeout_loop (
97
+ all_elements_non_empty ,
98
+ timeout = 5 ,
99
+ args = (name ,),
100
+ ), f"Monitor set '{ name } ' contains one or more empty elements."
90
101
91
102
def monitor_callback ():
92
103
monitor_callback .called = True
0 commit comments