JnuwpwbZ8D / repro /tests /test_hyperparameters.py
DineshAI's picture
Publish proof-certificate reproduction evidence
d5d2b00 verified
Raw
History Blame Contribute Delete
1.39 kB
import importlib.util
import unittest
from pathlib import Path
MODULE_PATH = Path(__file__).resolve().parents[1] / "src" / "verify_hyperparameters.py"
SPEC = importlib.util.spec_from_file_location("verify_hyperparameters", MODULE_PATH)
VERIFY = importlib.util.module_from_spec(SPEC)
assert SPEC.loader is not None
SPEC.loader.exec_module(VERIFY)
class HyperparameterTuningTests(unittest.TestCase):
def test_all_six_independent_checks(self) -> None:
self.assertEqual(VERIFY.check_fol_formula()["cases"], 96)
self.assertEqual(VERIFY.check_training_identity()["finite_universal_cases"], 189)
self.assertEqual(VERIFY.check_validation_identity()["finite_argmin_cases"], 75)
self.assertEqual(VERIFY.check_rational_path()["piecewise_rational_cases"], 300)
self.assertEqual(VERIFY.check_group_lasso()["kkt_cases"], 15)
self.assertEqual(VERIFY.check_fused_lasso()["kkt_path_cases"], 153)
def test_negative_controls_are_rejected(self) -> None:
fol = VERIFY.check_fol_formula()
self.assertGreater(fol["correct_expression"], fol["rejected_missing_plus_one"])
group = VERIFY.check_group_lasso()
self.assertLess(group["rejected_negative_nu"], 0)
fused = VERIFY.check_fused_lasso()
self.assertGreater(fused["rejected_wrong_threshold_difference"], 0)
if __name__ == "__main__":
unittest.main()