Files
benchmark/benchmark/tests/BestResults_test.py

73 lines
2.2 KiB
Python

import os
import unittest
from ..Models import Models
from ..Experiments import BestResults, Datasets
class BestResultTest(unittest.TestCase):
def __init__(self, *args, **kwargs):
os.chdir(os.path.dirname(os.path.abspath(__file__)))
super().__init__(*args, **kwargs)
def tearDown(self) -> None:
return super().tearDown()
def test_load(self):
expected = {
"balance-scale": [
0.98,
{"splitter": "iwss", "max_features": "auto"},
"results_accuracy_STree_iMac27_2021-10-27_09:40:40_0.json",
],
"balloons": [
0.86,
{
"C": 7,
"gamma": 0.1,
"kernel": "rbf",
"max_iter": 10000.0,
"multiclass_strategy": "ovr",
},
"results_accuracy_STree_iMac27_2021-09-30_11:42:07_0.json",
],
}
dt = Datasets()
model = "STree"
best = BestResults(
score="accuracy", model=model, datasets=dt, quiet=True
)
best.build()
self.assertSequenceEqual(best.load({}), expected)
def test_load_error(self):
dt = Datasets()
model = "STree"
best = BestResults(
score="accuracy", model=model, datasets=dt, quiet=True
)
file_name = best._get_file_name()
os.rename(file_name, file_name + ".bak")
try:
best.load({})
except ValueError:
pass
else:
self.fail("BestResults.load() should raise ValueError")
finally:
os.rename(file_name + ".bak", file_name)
def test_fill(self):
dt = Datasets()
model = "STree"
best = BestResults(
score="accuracy", model=model, datasets=dt, quiet=True
)
self.assertSequenceEqual(
best.fill({"test": "test"}, {"balloons": []}),
{"balloons": [], "balance-scale": (0.0, {"test": "test"}, "")},
)
self.assertSequenceEqual(
best.fill({}),
{"balance-scale": (0.0, {}, ""), "balloons": (0.0, {}, "")},
)