tests._local_test_timings._test_shared_memory   A
last analyzed

Complexity

Total Complexity 11

Size/Duplication

Total Lines 286
Duplicated Lines 83.92 %

Importance

Changes 0
Metric Value
wmc 11
eloc 216
dl 240
loc 286
rs 10
c 0
b 0
f 0

11 Functions

Rating   Name   Duplication   Size   Complexity  
B test_shared_memory_2() 52 52 1
A test_shared_memory_warm_start_1() 34 34 1
A test_shared_memory_0() 33 33 1
A model3() 0 3 1
B test_shared_memory_3() 53 53 1
A test_shared_memory_1() 34 34 1
A model() 0 3 1
A model4() 0 3 1
A model2() 0 3 1
A model1() 0 3 1
A test_shared_memory_warm_start_0() 34 34 1

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
import time
2
3
from hyperactive import Hyperactive
4
5
6
def model(opt):
7
    time.sleep(0.001)
8
    return 0
9
10
11
def model1(opt):
12
    time.sleep(0.001)
13
    return 0
14
15
16
def model2(opt):
17
    time.sleep(0.001)
18
    return 0
19
20
21
def model3(opt):
22
    time.sleep(0.001)
23
    return 0
24
25
26
def model4(opt):
27
    time.sleep(0.001)
28
    return 0
29
30
31
search_space = {
32
    "x1": list(range(2, 200)),
33
}
34
35
36 View Code Duplication
def test_shared_memory_0():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
37
    c_time = time.perf_counter()
38
    hyper = Hyperactive(n_processes=1)
39
    hyper.add_search(
40
        model,
41
        search_space,
42
        n_iter=300,
43
        n_jobs=1,
44
        memory="share",
45
    )
46
    hyper.run()
47
    d_time_1 = time.perf_counter() - c_time
48
49
    n_jobs = 4
50
    c_time = time.perf_counter()
51
    hyper = Hyperactive(n_processes=1)
52
    hyper.add_search(
53
        model,
54
        search_space,
55
        n_iter=300,
56
        n_jobs=n_jobs,
57
        memory="share",
58
    )
59
    hyper.run()
60
    d_time_2 = time.perf_counter() - c_time
61
    d_time_2 = d_time_2 / n_jobs
62
63
    print("\n d_time_1 \n", d_time_1)
64
    print("\n d_time_2 \n", d_time_2)
65
66
    d_time = d_time_1 / d_time_2
67
68
    assert d_time > 1.4
69
70
71 View Code Duplication
def test_shared_memory_1():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
72
    c_time = time.perf_counter()
73
    hyper = Hyperactive(n_processes=1)
74
    hyper.add_search(
75
        model,
76
        search_space,
77
        n_iter=300,
78
        n_jobs=1,
79
        memory=True,
80
    )
81
    hyper.run()
82
    d_time_1 = time.perf_counter() - c_time
83
84
    n_jobs = 4
85
    c_time = time.perf_counter()
86
    hyper = Hyperactive(n_processes=1)
87
    hyper.add_search(
88
        model,
89
        search_space,
90
        n_iter=300,
91
        n_jobs=n_jobs,
92
        memory=True,
93
    )
94
    hyper.run()
95
    d_time_2 = time.perf_counter() - c_time
96
    d_time_2 = d_time_2 / n_jobs
97
98
    print("\n d_time_1 \n", d_time_1)
99
    print("\n d_time_2 \n", d_time_2)
100
101
    d_time = d_time_1 / d_time_2
102
103
    assert d_time > 0.7
104
    assert d_time < 1.3
105
106
107 View Code Duplication
def test_shared_memory_2():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
108
    c_time = time.perf_counter()
109
    hyper = Hyperactive(n_processes=1)
110
    hyper.add_search(
111
        model,
112
        search_space,
113
        n_iter=300,
114
        n_jobs=1,
115
    )
116
    hyper.run()
117
    d_time_1 = time.perf_counter() - c_time
118
119
    c_time = time.perf_counter()
120
    hyper = Hyperactive(n_processes=1)
121
    hyper.add_search(
122
        model,
123
        search_space,
124
        n_iter=300,
125
        n_jobs=1,
126
        memory="share",
127
    )
128
    hyper.add_search(
129
        model,
130
        search_space,
131
        n_iter=300,
132
        n_jobs=1,
133
        memory="share",
134
    )
135
    hyper.add_search(
136
        model,
137
        search_space,
138
        n_iter=300,
139
        n_jobs=1,
140
        memory="share",
141
    )
142
    hyper.add_search(
143
        model,
144
        search_space,
145
        n_iter=300,
146
        n_jobs=1,
147
        memory="share",
148
    )
149
    hyper.run()
150
    d_time_2 = time.perf_counter() - c_time
151
    d_time_2 = d_time_2 / 4
152
153
    print("\n d_time_1 \n", d_time_1)
154
    print("\n d_time_2 \n", d_time_2)
155
156
    d_time = d_time_1 / d_time_2
157
158
    assert d_time > 1.4
159
160
161 View Code Duplication
def test_shared_memory_3():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
162
    c_time = time.perf_counter()
163
    hyper = Hyperactive(n_processes=1)
164
    hyper.add_search(
165
        model,
166
        search_space,
167
        n_iter=300,
168
        n_jobs=1,
169
    )
170
    hyper.run()
171
    d_time_1 = time.perf_counter() - c_time
172
173
    c_time = time.perf_counter()
174
    hyper = Hyperactive(n_processes=1)
175
    hyper.add_search(
176
        model,
177
        search_space,
178
        n_iter=300,
179
        n_jobs=1,
180
        memory=True,
181
    )
182
    hyper.add_search(
183
        model,
184
        search_space,
185
        n_iter=300,
186
        n_jobs=1,
187
        memory=True,
188
    )
189
    hyper.add_search(
190
        model,
191
        search_space,
192
        n_iter=300,
193
        n_jobs=1,
194
        memory=True,
195
    )
196
    hyper.add_search(
197
        model,
198
        search_space,
199
        n_iter=300,
200
        n_jobs=1,
201
        memory=True,
202
    )
203
    hyper.run()
204
    d_time_2 = time.perf_counter() - c_time
205
    d_time_2 = d_time_2 / 4
206
207
    print("\n d_time_1 \n", d_time_1)
208
    print("\n d_time_2 \n", d_time_2)
209
210
    d_time = d_time_1 / d_time_2
211
212
    assert d_time > 0.7
213
    assert d_time < 1.3
214
215
216 View Code Duplication
def test_shared_memory_warm_start_0():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
217
    c_time = time.perf_counter()
218
    hyper = Hyperactive(n_processes=1)
219
    hyper.add_search(
220
        model,
221
        search_space,
222
        n_iter=300,
223
        n_jobs=1,
224
    )
225
    hyper.run()
226
    d_time_1 = time.perf_counter() - c_time
227
228
    search_data0 = hyper.search_data(model)
229
230
    c_time = time.perf_counter()
231
    hyper = Hyperactive(n_processes=1)
232
    hyper.add_search(
233
        model,
234
        search_space,
235
        n_iter=300,
236
        n_jobs=4,
237
        memory_warm_start=search_data0,
238
        memory="share",
239
    )
240
    hyper.run()
241
    d_time_2 = time.perf_counter() - c_time
242
    d_time_2 = d_time_2 / 4
243
244
    print("\n d_time_1 \n", d_time_1)
245
    print("\n d_time_2 \n", d_time_2)
246
247
    d_time = d_time_1 / d_time_2
248
249
    assert d_time > 1.4
250
251
252 View Code Duplication
def test_shared_memory_warm_start_1():
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
253
    c_time = time.perf_counter()
254
    hyper = Hyperactive(n_processes=1)
255
    hyper.add_search(
256
        model,
257
        search_space,
258
        n_iter=300,
259
        n_jobs=1,
260
    )
261
    hyper.run()
262
    d_time_1 = time.perf_counter() - c_time
263
264
    search_data0 = hyper.search_data(model)
265
266
    c_time = time.perf_counter()
267
    hyper = Hyperactive(n_processes=1)
268
    hyper.add_search(
269
        model,
270
        search_space,
271
        n_iter=300,
272
        n_jobs=4,
273
        memory_warm_start=search_data0,
274
        memory=True,
275
    )
276
    hyper.run()
277
    d_time_2 = time.perf_counter() - c_time
278
    d_time_2 = d_time_2 / 4
279
280
    print("\n d_time_1 \n", d_time_1)
281
    print("\n d_time_2 \n", d_time_2)
282
283
    d_time = d_time_1 / d_time_2
284
285
    assert d_time > 2
286