File size: 1,349 Bytes
6551a95
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from arena.core.runner import run_arena
from arena.core.types import RunLimits
from arena.optimizers.registry import get_example


def test_run_arena_gradient_descent_linear_regression():
    example = get_example("Gradient Descent")
    result = run_arena(
        task_name="Linear Regression",
        optimizer_code=example.code,
        optimizer_config=example.default_config,
        task_config={"n": 64, "d": 4},
        device_name="cpu",
        steps=20,
        seed=0,
        limits=RunLimits(max_steps=100, max_seconds=10.0, log_every=1),
    )
    assert result.status == "success"
    assert not result.history.empty
    assert result.summary["final_loss"] <= result.summary["initial_loss"]


def test_iter_arena_streams_partial_results():
    from arena.core.runner import iter_arena

    example = get_example("Gradient Descent")
    results = list(
        iter_arena(
            task_name="Quadratic Bowl",
            optimizer_code=example.code,
            optimizer_config=example.default_config,
            task_config={"dim": 8},
            device_name="cpu",
            steps=5,
            seed=0,
            limits=RunLimits(max_steps=10, max_seconds=10.0, log_every=1),
        )
    )
    assert len(results) >= 2
    assert results[-1].status == "success"
    assert results[-1].summary["status"] == "success"