Skip to content

Commit 2b2d34c

Browse files
committed
checks runtime entrees
1 parent 4c70af1 commit 2b2d34c

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

tests/test_runs/test_run_functions.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
from openml.testing import TestBase
1515
from openml.runs.functions import _run_task_get_arffcontent, \
1616
_get_seeded_model, _run_exists, _extract_arfftrace, \
17-
_extract_arfftrace_attributes, _prediction_to_row
17+
_extract_arfftrace_attributes, _prediction_to_row, _check_n_jobs
1818

1919
from sklearn.naive_bayes import GaussianNB
2020
from sklearn.model_selection._search import BaseSearchCV
@@ -431,6 +431,7 @@ def test_run_with_classifiers_in_param_grid(self):
431431
task=task, model=clf, avoid_duplicate_runs=False)
432432

433433
def test__run_task_get_arffcontent(self):
434+
timing_measures = {'usercpu_time_millis_testing', 'usercpu_time_millis_training', 'usercpu_time_millis'}
434435
task = openml.tasks.get_task(7)
435436
class_labels = task.class_labels
436437
num_instances = 3196
@@ -444,13 +445,29 @@ def test__run_task_get_arffcontent(self):
444445
clf, task, class_labels)
445446

446447
clf = SGDClassifier(loss='log', random_state=1)
447-
arff_datacontent, arff_tracecontent, _, _ = openml.runs.functions._run_task_get_arffcontent(
448-
clf, task, class_labels)
448+
res = openml.runs.functions._run_task_get_arffcontent(clf, task, class_labels)
449+
arff_datacontent, arff_tracecontent, _, detailed_evaluations = res
449450
# predictions
450451
self.assertIsInstance(arff_datacontent, list)
451452
# trace. SGD does not produce any
452453
self.assertIsInstance(arff_tracecontent, type(None))
453454

455+
self.assertIsInstance(detailed_evaluations, dict)
456+
if sys.version_info[:2] >= (3, 3): # check_n_jobs follows from the used clf:
457+
self.assertEquals(set(detailed_evaluations.keys()), timing_measures)
458+
for measure in timing_measures:
459+
num_rep_entrees = len(detailed_evaluations[measure])
460+
self.assertEquals(num_rep_entrees, num_repeats)
461+
for rep in range(num_rep_entrees):
462+
num_fold_entrees = len(detailed_evaluations[measure][rep])
463+
self.assertEquals(num_fold_entrees, num_folds)
464+
for fold in range(num_fold_entrees):
465+
evaluation = detailed_evaluations[measure][rep][fold]
466+
self.assertIsInstance(evaluation, float)
467+
self.assertGreater(evaluation, 0) # should take at least one millisecond (?)
468+
self.assertLess(evaluation, 60) # pessimistic
469+
470+
454471
# 10 times 10 fold CV of 150 samples
455472
self.assertEqual(len(arff_datacontent), num_instances * num_repeats)
456473
for arff_line in arff_datacontent:

0 commit comments

Comments
 (0)