1- import filecmp
2- from shutil import copyfile
1+ import pip
32
43from tutorial .step_6 .A_classic_vs_multigrid_controller import main as main_A
54from tutorial .step_6 .B_odd_temporal_distribution import main as main_B
@@ -13,59 +12,64 @@ def test_B():
1312 main_B ()
1413
1514def test_C ():
16- cwd = 'tutorial/step_6'
17- main_C (cwd )
18-
19- with open ('step_6_C1_out.txt' , 'r' ) as file1 :
20- with open ('step_6_A_out.txt' , 'r' ) as file2 :
21- diff = set (file1 ).difference (file2 )
22- diff .discard ('\n ' )
23- for line in diff :
24- assert 'iterations' not in line , 'ERROR: iteration counts differ between MPI and nonMPI for even ' \
25- 'distribution of time-steps'
26-
27- with open ('step_6_C2_out.txt' , 'r' ) as file1 :
28- with open ('step_6_B_out.txt' , 'r' ) as file2 :
29- diff = set (file1 ).difference (file2 )
30- diff .discard ('\n ' )
31- for line in diff :
32- assert 'iterations' not in line , 'ERROR: iteration counts differ between MPI and nonMPI for odd distribution ' \
33- 'of time-steps'
34-
35- diff_MPI = []
36- with open ("step_6_C1_out.txt" ) as f :
37- for line in f :
38- if "Diff" in line :
39- diff_MPI .append (float (line .split ()[1 ]))
40-
41- diff_nonMPI = []
42- with open ("step_6_A_out.txt" ) as f :
43- for line in f :
44- if "Diff" in line :
45- diff_nonMPI .append (float (line .split ()[1 ]))
46-
47- assert len (diff_MPI ) == len (diff_nonMPI ), 'ERROR: got different number of results form MPI and nonMPI for even ' \
48- 'distribution of time-steps'
49-
50- for i , j in zip (diff_MPI , diff_nonMPI ):
51- assert abs (i - j ) < 6E-11 , 'ERROR: difference between MPI and nonMPI results is too large for even ' \
52- 'distributions of time-steps, got %s' % abs (i - j )
53-
54- diff_MPI = []
55- with open ("step_6_C2_out.txt" ) as f :
56- for line in f :
57- if "Diff" in line :
58- diff_MPI .append (float (line .split ()[1 ]))
59-
60- diff_nonMPI = []
61- with open ("step_6_B_out.txt" ) as f :
62- for line in f :
63- if "Diff" in line :
64- diff_nonMPI .append (float (line .split ()[1 ]))
65-
66- assert len (diff_MPI ) == len (diff_nonMPI ), 'ERROR: got different number of results form MPI and nonMPI for odd ' \
67- 'distribution of time-steps'
68-
69- for i , j in zip (diff_MPI , diff_nonMPI ):
70- assert abs (i - j ) < 6E-11 , 'ERROR: difference between MPI and nonMPI results is too large for odd ' \
71- 'distributions of time-steps, got %s' % abs (i - j )
15+ installed_packages = pip .get_installed_distributions ()
16+ flat_installed_packages = [package .project_name for package in installed_packages ]
17+
18+ if "mpi4py" in flat_installed_packages :
19+
20+ cwd = 'tutorial/step_6'
21+ main_C (cwd )
22+
23+ with open ('step_6_C1_out.txt' , 'r' ) as file1 :
24+ with open ('step_6_A_out.txt' , 'r' ) as file2 :
25+ diff = set (file1 ).difference (file2 )
26+ diff .discard ('\n ' )
27+ for line in diff :
28+ assert 'iterations' not in line , 'ERROR: iteration counts differ between MPI and nonMPI for even ' \
29+ 'distribution of time-steps'
30+
31+ with open ('step_6_C2_out.txt' , 'r' ) as file1 :
32+ with open ('step_6_B_out.txt' , 'r' ) as file2 :
33+ diff = set (file1 ).difference (file2 )
34+ diff .discard ('\n ' )
35+ for line in diff :
36+ assert 'iterations' not in line , 'ERROR: iteration counts differ between MPI and nonMPI for odd distribution ' \
37+ 'of time-steps'
38+
39+ diff_MPI = []
40+ with open ("step_6_C1_out.txt" ) as f :
41+ for line in f :
42+ if "Diff" in line :
43+ diff_MPI .append (float (line .split ()[1 ]))
44+
45+ diff_nonMPI = []
46+ with open ("step_6_A_out.txt" ) as f :
47+ for line in f :
48+ if "Diff" in line :
49+ diff_nonMPI .append (float (line .split ()[1 ]))
50+
51+ assert len (diff_MPI ) == len (diff_nonMPI ), 'ERROR: got different number of results form MPI and nonMPI for even ' \
52+ 'distribution of time-steps'
53+
54+ for i , j in zip (diff_MPI , diff_nonMPI ):
55+ assert abs (i - j ) < 6E-11 , 'ERROR: difference between MPI and nonMPI results is too large for even ' \
56+ 'distributions of time-steps, got %s' % abs (i - j )
57+
58+ diff_MPI = []
59+ with open ("step_6_C2_out.txt" ) as f :
60+ for line in f :
61+ if "Diff" in line :
62+ diff_MPI .append (float (line .split ()[1 ]))
63+
64+ diff_nonMPI = []
65+ with open ("step_6_B_out.txt" ) as f :
66+ for line in f :
67+ if "Diff" in line :
68+ diff_nonMPI .append (float (line .split ()[1 ]))
69+
70+ assert len (diff_MPI ) == len (diff_nonMPI ), 'ERROR: got different number of results form MPI and nonMPI for odd ' \
71+ 'distribution of time-steps'
72+
73+ for i , j in zip (diff_MPI , diff_nonMPI ):
74+ assert abs (i - j ) < 6E-11 , 'ERROR: difference between MPI and nonMPI results is too large for odd ' \
75+ 'distributions of time-steps, got %s' % abs (i - j )
0 commit comments