Module molcrawl.debug.test_experiment_system
Basic test of experiment management system
Functions
def main()-
Expand source code
def main(): """Run all tests""" print("=" * 60) print("๐งช Experiment Tracking System - Basic Tests") print("=" * 60) results = [] results.append(("Imports", test_imports())) results.append(("Database", test_database())) results.append(("Tracker", test_tracker())) results.append(("Helpers", test_helpers())) print("\n" + "=" * 60) print("Test Results:") print("=" * 60) for name, result in results: status = "โ PASS" if result else "โ FAIL" print(f"{name:20s} {status}") print("=" * 60) all_passed = all(result for _, result in results) if all_passed: print("\nโ All tests passed!") return 0 else: print("\nโ Some tests failed!") return 1Run all tests
def test_database()-
Expand source code
def test_database(): """Database connection test""" print("\nTesting database...") try: import os import tempfile from molcrawl.experiment_tracker.database import ExperimentDatabase # use temporary files temp_dir = tempfile.mkdtemp() db_path = os.path.join(temp_dir, "test.db") db = ExperimentDatabase(db_path) stats = db.get_statistics() assert stats["total_experiments"] == 0 # cleanup import shutil shutil.rmtree(temp_dir) print(" โ Database connection successful") return True except Exception as e: import traceback print(f" โ Database test failed: {e}") print(traceback.format_exc()) return FalseDatabase connection test
def test_helpers()-
Expand source code
def test_helpers(): """Helper function test""" print("\nTesting helpers...") try: import tempfile from molcrawl.experiment_tracker import ( DatasetType, ExperimentType, ModelType, ) from molcrawl.experiment_tracker.helpers import experiment_context temp_dir = tempfile.mkdtemp() # Context manager test with experiment_context( name="Test Context Experiment", experiment_type=ExperimentType.EVALUATION, model_type=ModelType.BERT, dataset_type=DatasetType.CLINVAR, ) as exp: exp.log("INFO", "Test log") exp.start_step("step1", "Test Step 1") exp.complete_step("step1") exp.add_metric("test_metric", 0.88) print(" Context manager test passed") # cleanup import shutil shutil.rmtree(temp_dir) print(" โ Helpers test successful") return True except Exception as e: import traceback print(f" โ Helpers test failed: {e}") print(traceback.format_exc()) return FalseHelper function test
def test_imports()-
Expand source code
def test_imports(): """Module import test""" print("Testing imports...") try: from molcrawl.experiment_tracker import ( # noqa: F401 DatasetType, ExperimentStatus, ExperimentTracker, ExperimentType, ModelType, ) print(" โ Core modules imported successfully") return True except ImportError as e: print(f" โ Import failed: {e}") return FalseModule import test
def test_tracker()-
Expand source code
def test_tracker(): """Tracker basic functionality test""" print("\nTesting tracker...") try: import os # Temporary database for testing import tempfile from molcrawl.experiment_tracker import ( DatasetType, ExperimentTracker, ExperimentType, ModelType, ) temp_dir = tempfile.mkdtemp() db_path = os.path.join(temp_dir, "test.db") tracker = ExperimentTracker(db_path) # Create experiment exp_id = tracker.start_experiment( name="Test Experiment", experiment_type=ExperimentType.TRAINING, model_type=ModelType.GPT2, dataset_type=DatasetType.PROTEIN_SEQUENCE, ) print(f" Created experiment: {exp_id}") # add step tracker.start_step(exp_id, "test_step", "Test Step") time.sleep(0.1) tracker.complete_step(exp_id, "test_step") print(" Added and completed step") # add log tracker.log(exp_id, "INFO", "Test log message") print(" Added log entry") # Experiment completed tracker.complete_experiment(exp_id, metrics={"accuracy": 0.95}) print(" Completed experiment") # Acquisition test experiment = tracker.get_experiment(exp_id) assert experiment is not None assert len(experiment.steps) == 1 assert len(experiment.logs) >= 2 # start + test log assert experiment.metrics["accuracy"] == 0.95 print(" Retrieved and verified experiment") # cleanup import shutil shutil.rmtree(temp_dir) print(" โ Tracker test successful") return True except Exception as e: import traceback print(f" โ Tracker test failed: {e}") print(traceback.format_exc()) return FalseTracker basic functionality test