Spaces:
Sleeping
Sleeping
| import pandas as pd | |
| import pytest | |
| import torch | |
| from cognitive_mapping_probe.orchestrator_seismograph import run_seismic_analysis | |
| from cognitive_mapping_probe.auto_experiment import run_auto_suite, get_curated_experiments | |
| def test_run_seismic_analysis_no_injection(mocker): | |
| """Testet den Orchestrator im Baseline-Modus.""" | |
| mock_run_seismic = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=[1.0]) | |
| mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_or_load_model') | |
| mock_get_concept = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_concept_vector') | |
| run_seismic_analysis(model_id="mock", prompt_type="test", seed=42, num_steps=1, concept_to_inject="", injection_strength=0.0, progress_callback=mocker.MagicMock()) | |
| mock_get_concept.assert_not_called() | |
| def test_run_seismic_analysis_with_injection(mocker): | |
| """Testet den Orchestrator mit Injektion.""" | |
| mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.run_silent_cogitation_seismic', return_value=[1.0]) | |
| mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_or_load_model') | |
| mock_get_concept = mocker.patch('cognitive_mapping_probe.orchestrator_seismograph.get_concept_vector', return_value=torch.randn(10)) | |
| run_seismic_analysis(model_id="mock", prompt_type="test", seed=42, num_steps=1, concept_to_inject="test", injection_strength=1.5, progress_callback=mocker.MagicMock()) | |
| mock_get_concept.assert_called_once() | |
| def test_get_curated_experiments_structure(): | |
| """Testet die Datenstruktur der kuratierten Experimente, inklusive der neuen.""" | |
| experiments = get_curated_experiments() | |
| assert isinstance(experiments, dict) | |
| # Teste auf die Existenz der neuen Protokolle | |
| assert "Mind Upload & Identity Probe" in experiments | |
| assert "Model Termination Probe" in experiments | |
| # Validiere die Struktur eines der neuen Protokolle | |
| protocol = experiments["Mind Upload & Identity Probe"] | |
| assert isinstance(protocol, list) | |
| assert len(protocol) > 0 | |
| assert "label" in protocol[0] and "prompt_type" in protocol[0] | |
| def test_run_auto_suite_logic(mocker): | |
| """Testet die Logik der `run_auto_suite` Funktion.""" | |
| mock_analysis_result = {"stats": {"mean_delta": 1.0}, "state_deltas": [1.0]} | |
| mock_run_analysis = mocker.patch('cognitive_mapping_probe.auto_experiment.run_seismic_analysis', return_value=mock_analysis_result) | |
| experiment_name = "Calm vs. Chaos" | |
| num_runs = len(get_curated_experiments()[experiment_name]) | |
| summary_df, plot_df, all_results = run_auto_suite( | |
| model_id="mock", num_steps=1, seed=42, | |
| experiment_name=experiment_name, progress_callback=mocker.MagicMock() | |
| ) | |
| assert mock_run_analysis.call_count == num_runs | |
| assert isinstance(summary_df, pd.DataFrame) and len(summary_df) == num_runs | |
| assert isinstance(plot_df, pd.DataFrame) and len(plot_df) == num_runs | |