chore: import upstream snapshot with attribution
OSV-Scanner (Scheduled) / scan-scheduled (push) Failing after 0s
Create Release / test-gate (push) Has been cancelled
Create Release / release-gate (push) Has been cancelled
Create Release / ci-gate (push) Has been cancelled
Create Release / version-check (push) Has been cancelled
Create Release / e2e-test-gate (push) Has been cancelled
Create Release / responsive-test-gate (push) Has been cancelled
Create Release / compat-test-gate (push) Has been cancelled
Create Release / compose-integration-gate (push) Has been cancelled
Create Release / vulture-gate (push) Has been cancelled
Create Release / build (push) Has been cancelled
Create Release / provenance (push) Has been cancelled
Create Release / prerelease-docker (push) Has been cancelled
Create Release / publish-docker (push) Has been cancelled
Create Release / create-release (push) Has been cancelled
Create Release / cleanup-changelog (push) Has been cancelled
Create Release / trigger-pypi (push) Has been cancelled
Create Release / monitor-pypi (push) Has been cancelled
Create Release / Clean up orphan prerelease tags and signatures (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-form] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-metrics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [research-workflow] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-core] (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [history-news] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [library] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [link-analytics] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-core] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [chat-lifecycle] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [error-benchmark] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [settings-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) (push) Has been cancelled
Docker Tests (Consolidated) / Accessibility Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Unit Tests (push) Has been cancelled
Docker Tests (Consolidated) / LLM Example Tests (push) Has been cancelled
Docker Tests (Consolidated) / Production Image Smoke Test (push) Has been cancelled
Docker Tests (Consolidated) / Infrastructure Tests (push) Has been cancelled
OSSF Scorecard / OSSF Security Scorecard Analysis (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [mobile] (push) Has been cancelled
Backwards Compatibility / Verify Encryption Constants (push) Has been cancelled
Backwards Compatibility / PyPI Version Compatibility (push) Has been cancelled
Backwards Compatibility / Database Migration Tests (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Docker Tests (Consolidated) / detect-changes (push) Has been cancelled
Docker Tests (Consolidated) / Build Test Image (push) Has been cancelled
Docker Tests (Consolidated) / All Pytest Tests + Coverage (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [accessibility] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [api-crud] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-login] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-pages] (push) Has been cancelled
Docker Tests (Consolidated) / UI Tests (Puppeteer) [auth-register] (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 13:08:55 +08:00
commit 7a0da7932b
2985 changed files with 1049377 additions and 0 deletions
+243
View File
@@ -0,0 +1,243 @@
"""
Tests for optimization API functions.
This module tests the convenience functions that wrap OptunaOptimizer
for different optimization strategies.
"""
from unittest.mock import MagicMock, patch
from local_deep_research.benchmarks.optimization.api import (
optimize_for_efficiency,
optimize_for_quality,
optimize_for_speed,
optimize_parameters,
)
class TestOptimizeParameters:
"""Tests for the optimize_parameters function."""
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_creates_optimizer_with_query(self, mock_optimizer_class):
"""Function creates optimizer with the provided query."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({"iterations": 3}, 0.85)
mock_optimizer_class.return_value = mock_optimizer
optimize_parameters(query="test research query")
mock_optimizer_class.assert_called_once()
call_kwargs = mock_optimizer_class.call_args[1]
assert call_kwargs["base_query"] == "test research query"
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_passes_all_parameters_to_optimizer(self, mock_optimizer_class):
"""Function passes all configuration parameters to optimizer."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_parameters(
query="test query",
output_dir="/custom/output",
model_name="gpt-4",
provider="openai",
search_tool="google",
temperature=0.5,
n_trials=50,
timeout=3600,
n_jobs=4,
study_name="custom_study",
optimization_metrics=["quality"],
metric_weights={"quality": 1.0},
benchmark_weights={"simpleqa": 0.7, "browsecomp": 0.3},
)
call_kwargs = mock_optimizer_class.call_args[1]
assert call_kwargs["output_dir"] == "/custom/output"
assert call_kwargs["model_name"] == "gpt-4"
assert call_kwargs["provider"] == "openai"
assert call_kwargs["search_tool"] == "google"
assert call_kwargs["temperature"] == 0.5
assert call_kwargs["n_trials"] == 50
assert call_kwargs["timeout"] == 3600
assert call_kwargs["n_jobs"] == 4
assert call_kwargs["study_name"] == "custom_study"
assert call_kwargs["optimization_metrics"] == ["quality"]
assert call_kwargs["metric_weights"] == {"quality": 1.0}
assert call_kwargs["benchmark_weights"] == {
"simpleqa": 0.7,
"browsecomp": 0.3,
}
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_calls_optimizer_optimize_method(self, mock_optimizer_class):
"""Function calls the optimizer's optimize method."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
param_space = {"iterations": {"type": "int", "low": 1, "high": 5}}
optimize_parameters(query="test", param_space=param_space)
mock_optimizer.optimize.assert_called_once_with(param_space)
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_returns_optimizer_result(self, mock_optimizer_class):
"""Function returns the result from optimizer."""
expected_params = {"iterations": 3, "search_strategy": "rapid"}
expected_score = 0.92
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = (expected_params, expected_score)
mock_optimizer_class.return_value = mock_optimizer
result_params, result_score = optimize_parameters(query="test")
assert result_params == expected_params
assert result_score == expected_score
class TestOptimizeForSpeed:
"""Tests for the optimize_for_speed function."""
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_uses_speed_focused_param_space(self, mock_optimizer_class):
"""Function uses a parameter space optimized for speed."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_speed(query="test")
# Check the param_space passed to optimize()
param_space = mock_optimizer.optimize.call_args[0][0]
# Speed-focused should have limited iterations (max 3)
assert param_space["iterations"]["high"] == 3
assert param_space["questions_per_iteration"]["high"] == 3
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_uses_speed_focused_weights(self, mock_optimizer_class):
"""Function uses metric weights that prioritize speed."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_speed(query="test")
call_kwargs = mock_optimizer_class.call_args[1]
metric_weights = call_kwargs["metric_weights"]
# Speed should be heavily weighted
assert metric_weights["speed"] == 0.8
assert metric_weights["quality"] == 0.2
assert metric_weights["resource"] == 0.0
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_uses_speed_focused_search_strategies(self, mock_optimizer_class):
"""Function uses fast search strategies."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_speed(query="test")
param_space = mock_optimizer.optimize.call_args[0][0]
strategies = param_space["search_strategy"]["choices"]
# Should include fast strategies
assert "source-based" in strategies
assert "focused-iteration" in strategies
class TestOptimizeForQuality:
"""Tests for the optimize_for_quality function."""
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_uses_quality_focused_weights(self, mock_optimizer_class):
"""Function uses metric weights that prioritize quality."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_quality(query="test")
call_kwargs = mock_optimizer_class.call_args[1]
metric_weights = call_kwargs["metric_weights"]
# Quality should be heavily weighted
assert metric_weights["quality"] == 0.9
assert metric_weights["speed"] == 0.1
assert metric_weights["resource"] == 0.0
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_uses_default_param_space(self, mock_optimizer_class):
"""Function passes None for param_space (uses default)."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_quality(query="test")
# param_space should be None (will use optimizer's default)
param_space = mock_optimizer.optimize.call_args[0][0]
assert param_space is None
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_includes_quality_in_optimization_metrics(
self, mock_optimizer_class
):
"""Function includes quality in optimization metrics."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_quality(query="test")
call_kwargs = mock_optimizer_class.call_args[1]
assert "quality" in call_kwargs["optimization_metrics"]
class TestOptimizeForEfficiency:
"""Tests for the optimize_for_efficiency function."""
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_uses_balanced_weights(self, mock_optimizer_class):
"""Function uses balanced metric weights."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_efficiency(query="test")
call_kwargs = mock_optimizer_class.call_args[1]
metric_weights = call_kwargs["metric_weights"]
# Should balance all three metrics
assert metric_weights["quality"] == 0.4
assert metric_weights["speed"] == 0.3
assert metric_weights["resource"] == 0.3
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_includes_resource_metric(self, mock_optimizer_class):
"""Function includes resource in optimization metrics."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_efficiency(query="test")
call_kwargs = mock_optimizer_class.call_args[1]
assert "resource" in call_kwargs["optimization_metrics"]
@patch("local_deep_research.benchmarks.optimization.api.OptunaOptimizer")
def test_includes_all_three_metrics(self, mock_optimizer_class):
"""Function optimizes for quality, speed, and resource."""
mock_optimizer = MagicMock()
mock_optimizer.optimize.return_value = ({}, 0.5)
mock_optimizer_class.return_value = mock_optimizer
optimize_for_efficiency(query="test")
call_kwargs = mock_optimizer_class.call_args[1]
metrics = call_kwargs["optimization_metrics"]
assert "quality" in metrics
assert "speed" in metrics
assert "resource" in metrics