-
Notifications
You must be signed in to change notification settings - Fork 0
/
data_compare.py
88 lines (80 loc) · 2.52 KB
/
data_compare.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# data_compare.py
# Last updated 15/08/2018
# Last Formatted Dec 2019
# James Widdicombe
# Simple script to compare data from a serial and parallel
# run of the same program
# Load the modules
import numpy as np
# Input Directory for data files
serial_directory = "serial"
parallel_directory = "parallel"
# Time Data
# Serial
serial_time_data = np.genfromtxt(serial_directory + "/" + "time.out")
# Parallel
parallel_time_data = np.genfromtxt(parallel_directory + "/" + "time.out")
# Input data have different file lengths
time_difference_index = min(len(serial_time_data), len(parallel_time_data))
test_1 = 0
for i in range(time_difference_index):
if parallel_time_data[i] - serial_time_data[i] != 0:
print(i)
test_1 = 1
if test_1 == 0:
print("Test 1 Passed - Time files align")
else:
print("Test 1 FAILED - Time files do not align")
# All input files
input_name_array = [
"Weyl4_l2_m0_data.out",
"Weyl4_l2_m1_data.out",
"Weyl4_l2_m2_data.out",
"Weyl4_l2_m1n_data.out",
"Weyl4_l2_m2n_data.out",
"Weyl4_l3_m0_data.out",
"Weyl4_l3_m1_data.out",
"Weyl4_l3_m2_data.out",
"Weyl4_l3_m3_data.out",
"Weyl4_l3_m1n_data.out",
"Weyl4_l3_m2n_data.out",
"Weyl4_l3_m3n_data.out",
"Weyl4_l4_m0_data.out",
"Weyl4_l4_m1_data.out",
"Weyl4_l4_m2_data.out",
"Weyl4_l4_m3_data.out",
"Weyl4_l4_m4_data.out",
"Weyl4_l4_m1n_data.out",
"Weyl4_l4_m2n_data.out",
"Weyl4_l4_m3n_data.out",
"Weyl4_l4_m4n_data.out",
]
serial_master = []
parallel_master = []
# Load all spherical harmonics
for i in input_name_array:
serial_master.append(
np.genfromtxt(
serial_directory + "/" + i,
dtype=np.complex128,
converters={0: lambda s: complex(s.decode().replace("+-", "-"))},
)
)
parallel_master.append(
np.genfromtxt(
parallel_directory + "/" + i,
dtype=np.complex128,
converters={0: lambda s: complex(s.decode().replace("+-", "-"))},
)
)
# Check all output numbers are the same
test_2 = 0
for i in range(len(serial_master)):
for j in range(min(len(serial_master[i]), len(parallel_master[i]))):
if serial_master[i][j] - parallel_master[i][j] != 0:
print(serial_master[i][j] - parallel_master[i][j])
test_2 = 1
if test_2 == 0:
print("Test 2 Passed - All output files are the same")
else:
print("Test 2 FAILED - All output files are NOT the same")