Skip to content

Commit b53ec16

Browse files
committed
Enhancements for tests
1 parent b8bf538 commit b53ec16

File tree

3 files changed

+174
-120
lines changed

3 files changed

+174
-120
lines changed

tests/test_vecstack_classification_binary.py

Lines changed: 56 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333

3434
n_classes = 2
3535
n_folds = 5
36+
temp_dir = 'tmpdw35lg54ms80eb42'
3637

3738
X, y = make_classification(n_samples = 500, n_features = 5, n_informative = 3, n_redundant = 1,
3839
n_classes = n_classes, flip_y = 0, random_state = 0)
@@ -43,12 +44,29 @@
4344

4445
class TestClassificationMulticlass(unittest.TestCase):
4546

47+
@classmethod
48+
def setUpClass(cls):
49+
try:
50+
os.mkdir(temp_dir)
51+
except:
52+
print('Unable to create temp dir')
53+
54+
@classmethod
55+
def tearDownClass(cls):
56+
try:
57+
os.rmdir(temp_dir)
58+
except:
59+
print('Unable to remove temp dir')
60+
4661
def tearDown(self):
4762
# Remove files after each test
48-
files = glob.glob('*.npy')
49-
files.extend(glob.glob('*.txt'))
50-
for file in files:
51-
os.remove(file)
63+
files = glob.glob(os.path.join(temp_dir, '*.npy'))
64+
files.extend(glob.glob(os.path.join(temp_dir, '*.log.txt')))
65+
try:
66+
for file in files:
67+
os.remove(file)
68+
except:
69+
print('Unable to remove temp file')
5270

5371
#---------------------------------------------------------------------------
5472
# Test returned and saved arrays in each mode (parameter <mode>)
@@ -69,13 +87,13 @@ def test_oof_pred_mode(self):
6987

7088
models = [LogisticRegression()]
7189
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
72-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
90+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
7391
mode = 'oof_pred', random_state = 0, verbose = 0, stratified = True)
7492

7593
# Load OOF from file
7694
# Normally if cleaning is performed there is only one .npy file at given moment
7795
# But if we have no cleaning there may be more then one file so we take the latest
78-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
96+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
7997
S = np.load(file_name)
8098
S_train_3 = S[0]
8199
S_test_3 = S[1]
@@ -95,13 +113,13 @@ def test_oof_mode(self):
95113

96114
models = [LogisticRegression()]
97115
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
98-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
116+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
99117
mode = 'oof', random_state = 0, verbose = 0, stratified = True)
100118

101119
# Load OOF from file
102120
# Normally if cleaning is performed there is only one .npy file at given moment
103121
# But if we have no cleaning there may be more then one file so we take the latest
104-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
122+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
105123
S = np.load(file_name)
106124
S_train_3 = S[0]
107125
S_test_3 = S[1]
@@ -121,13 +139,13 @@ def test_pred_mode(self):
121139

122140
models = [LogisticRegression()]
123141
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
124-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
142+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
125143
mode = 'pred', random_state = 0, verbose = 0, stratified = True)
126144

127145
# Load OOF from file
128146
# Normally if cleaning is performed there is only one .npy file at given moment
129147
# But if we have no cleaning there may be more then one file so we take the latest
130-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
148+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
131149
S = np.load(file_name)
132150
S_train_3 = S[0]
133151
S_test_3 = S[1]
@@ -160,13 +178,13 @@ def test_oof_pred_bag_mode(self):
160178

161179
models = [LogisticRegression()]
162180
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
163-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
181+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
164182
mode = 'oof_pred_bag', random_state = 0, verbose = 0, stratified = True)
165183

166184
# Load OOF from file
167185
# Normally if cleaning is performed there is only one .npy file at given moment
168186
# But if we have no cleaning there may be more then one file so we take the latest
169-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
187+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
170188
S = np.load(file_name)
171189
S_train_3 = S[0]
172190
S_test_3 = S[1]
@@ -197,13 +215,13 @@ def test_pred_bag_mode(self):
197215

198216
models = [LogisticRegression()]
199217
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
200-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
218+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
201219
mode = 'pred_bag', random_state = 0, verbose = 0, stratified = True)
202220

203221
# Load OOF from file
204222
# Normally if cleaning is performed there is only one .npy file at given moment
205223
# But if we have no cleaning there may be more then one file so we take the latest
206-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
224+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
207225
S = np.load(file_name)
208226
S_train_3 = S[0]
209227
S_test_3 = S[1]
@@ -229,12 +247,12 @@ def test_oof_pred_mode_proba(self):
229247
models = [LogisticRegression()]
230248
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
231249
regression = False, n_folds = n_folds, shuffle = False, stratified = True,
232-
mode = 'oof_pred', random_state = 0, verbose = 0, needs_proba = True, save_dir = '.')
250+
mode = 'oof_pred', random_state = 0, verbose = 0, needs_proba = True, save_dir=temp_dir)
233251

234252
# Load OOF from file
235253
# Normally if cleaning is performed there is only one .npy file at given moment
236254
# But if we have no cleaning there may be more then one file so we take the latest
237-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
255+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
238256
S = np.load(file_name)
239257
S_train_3 = S[0]
240258
S_test_3 = S[1]
@@ -255,12 +273,12 @@ def test_oof_mode_proba(self):
255273
models = [LogisticRegression()]
256274
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
257275
regression = False, n_folds = n_folds, shuffle = False, stratified = True,
258-
mode = 'oof', random_state = 0, verbose = 0, needs_proba = True, save_dir = '.')
276+
mode = 'oof', random_state = 0, verbose = 0, needs_proba = True, save_dir=temp_dir)
259277

260278
# Load OOF from file
261279
# Normally if cleaning is performed there is only one .npy file at given moment
262280
# But if we have no cleaning there may be more then one file so we take the latest
263-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
281+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
264282
S = np.load(file_name)
265283
S_train_3 = S[0]
266284
S_test_3 = S[1]
@@ -281,12 +299,12 @@ def test_pred_mode_proba(self):
281299
models = [LogisticRegression()]
282300
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
283301
regression = False, n_folds = n_folds, shuffle = False, stratified = True,
284-
mode = 'pred', random_state = 0, verbose = 0, needs_proba = True, save_dir = '.')
302+
mode = 'pred', random_state = 0, verbose = 0, needs_proba = True, save_dir=temp_dir)
285303

286304
# Load OOF from file
287305
# Normally if cleaning is performed there is only one .npy file at given moment
288306
# But if we have no cleaning there may be more then one file so we take the latest
289-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
307+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
290308
S = np.load(file_name)
291309
S_train_3 = S[0]
292310
S_test_3 = S[1]
@@ -322,13 +340,13 @@ def test_oof_pred_bag_mode_proba(self):
322340

323341
models = [LogisticRegression()]
324342
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
325-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
343+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
326344
mode = 'oof_pred_bag', random_state = 0, verbose = 0, stratified = True, needs_proba = True)
327345

328346
# Load OOF from file
329347
# Normally if cleaning is performed there is only one .npy file at given moment
330348
# But if we have no cleaning there may be more then one file so we take the latest
331-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
349+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
332350
S = np.load(file_name)
333351
S_train_3 = S[0]
334352
S_test_3 = S[1]
@@ -371,13 +389,13 @@ def test_pred_bag_mode_proba(self):
371389

372390
models = [LogisticRegression()]
373391
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
374-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
392+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
375393
mode = 'pred_bag', random_state = 0, verbose = 0, stratified = True, needs_proba = True)
376394

377395
# Load OOF from file
378396
# Normally if cleaning is performed there is only one .npy file at given moment
379397
# But if we have no cleaning there may be more then one file so we take the latest
380-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
398+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
381399
S = np.load(file_name)
382400
S_train_3 = S[0]
383401
S_test_3 = S[1]
@@ -415,13 +433,13 @@ def test_oof_pred_bag_mode_shuffle(self):
415433

416434
models = [LogisticRegression()]
417435
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
418-
regression = False, n_folds = n_folds, shuffle = True, save_dir = '.',
436+
regression = False, n_folds = n_folds, shuffle = True, save_dir=temp_dir,
419437
mode = 'oof_pred_bag', random_state = 0, verbose = 0, stratified = True)
420438

421439
# Load OOF from file
422440
# Normally if cleaning is performed there is only one .npy file at given moment
423441
# But if we have no cleaning there may be more then one file so we take the latest
424-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
442+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
425443
S = np.load(file_name)
426444
S_train_3 = S[0]
427445
S_test_3 = S[1]
@@ -450,13 +468,13 @@ def test_oof_mode_metric(self):
450468

451469
models = [LogisticRegression()]
452470
S_train, S_test = stacking(models, X_train, y_train, X_test,
453-
regression = False, n_folds = n_folds, save_dir = '.',
471+
regression = False, n_folds = n_folds, save_dir=temp_dir,
454472
mode = 'oof', random_state = 0, verbose = 0, stratified = True)
455473

456474
# Load mean score and std from file
457475
# Normally if cleaning is performed there is only one .log.txt file at given moment
458476
# But if we have no cleaning there may be more then one file so we take the latest
459-
file_name = sorted(glob.glob('*.log.txt'))[-1] # take the latest file
477+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.log.txt')))[-1] # take the latest file
460478
with open(file_name) as f:
461479
for line in f:
462480
if 'MEAN' in line:
@@ -487,14 +505,14 @@ def test_oof_mode_metric_proba(self):
487505

488506
models = [LogisticRegression()]
489507
S_train, S_test = stacking(models, X_train, y_train, X_test,
490-
regression = False, n_folds = n_folds, save_dir = '.',
508+
regression = False, n_folds = n_folds, save_dir=temp_dir,
491509
mode = 'oof', random_state = 0, verbose = 0, stratified = True,
492510
needs_proba = True)
493511

494512
# Load mean score and std from file
495513
# Normally if cleaning is performed there is only one .log.txt file at given moment
496514
# But if we have no cleaning there may be more then one file so we take the latest
497-
file_name = sorted(glob.glob('*.log.txt'))[-1] # take the latest file
515+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.log.txt')))[-1] # take the latest file
498516
with open(file_name) as f:
499517
for line in f:
500518
if 'MEAN' in line:
@@ -533,13 +551,13 @@ def test_oof_pred_mode_2_models(self):
533551
models = [LogisticRegression(),
534552
GaussianNB()]
535553
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
536-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
554+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
537555
mode = 'oof_pred', random_state = 0, verbose = 0, stratified = True)
538556

539557
# Load OOF from file
540558
# Normally if cleaning is performed there is only one .npy file at given moment
541559
# But if we have no cleaning there may be more then one file so we take the latest
542-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
560+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
543561
S = np.load(file_name)
544562
S_train_3 = S[0]
545563
S_test_3 = S[1]
@@ -596,13 +614,13 @@ def test_oof_pred_bag_mode_2_models(self):
596614
models = [LogisticRegression(),
597615
GaussianNB()]
598616
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
599-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
617+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
600618
mode = 'oof_pred_bag', random_state = 0, verbose = 0, stratified = True)
601619

602620
# Load OOF from file
603621
# Normally if cleaning is performed there is only one .npy file at given moment
604622
# But if we have no cleaning there may be more then one file so we take the latest
605-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
623+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
606624
S = np.load(file_name)
607625
S_train_3 = S[0]
608626
S_test_3 = S[1]
@@ -637,12 +655,12 @@ def test_oof_pred_mode_proba_2_models(self):
637655
GaussianNB()]
638656
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
639657
regression = False, n_folds = n_folds, shuffle = False, stratified = True,
640-
mode = 'oof_pred', random_state = 0, verbose = 0, needs_proba = True, save_dir = '.')
658+
mode = 'oof_pred', random_state = 0, verbose = 0, needs_proba = True, save_dir=temp_dir)
641659

642660
# Load OOF from file
643661
# Normally if cleaning is performed there is only one .npy file at given moment
644662
# But if we have no cleaning there may be more then one file so we take the latest
645-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
663+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
646664
S = np.load(file_name)
647665
S_train_3 = S[0]
648666
S_test_3 = S[1]
@@ -708,13 +726,13 @@ def test_oof_pred_bag_mode_proba_2_models(self):
708726
models = [LogisticRegression(),
709727
GaussianNB()]
710728
S_train_2, S_test_2 = stacking(models, X_train, y_train, X_test,
711-
regression = False, n_folds = n_folds, shuffle = False, save_dir = '.',
729+
regression = False, n_folds = n_folds, shuffle = False, save_dir=temp_dir,
712730
mode = 'oof_pred_bag', random_state = 0, verbose = 0, stratified = True, needs_proba = True)
713731

714732
# Load OOF from file
715733
# Normally if cleaning is performed there is only one .npy file at given moment
716734
# But if we have no cleaning there may be more then one file so we take the latest
717-
file_name = sorted(glob.glob('*.npy'))[-1] # take the latest file
735+
file_name = sorted(glob.glob(os.path.join(temp_dir, '*.npy')))[-1] # take the latest file
718736
S = np.load(file_name)
719737
S_train_3 = S[0]
720738
S_test_3 = S[1]

0 commit comments

Comments
 (0)