File size: 1,053 Bytes
8c75600
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
from __future__ import annotations

from lean_migrate.env.tasks import get_task
from lean_migrate.env.verification_semantics import get_function_semantics


def test_verification_semantics_registry_covers_current_functions() -> None:
    expected_function_names = {
        "rbac_auth": {"findRole", "hasDirectPermission", "canAccess"},
        "pricing_engine": {
            "subtotal",
            "taxRateBps",
            "couponDiscount",
            "loyaltyDiscount",
            "finalPrice",
        },
        "payment_saga": {"transition", "runSaga", "isCharged"},
    }

    for task_id, function_names in expected_function_names.items():
        task = get_task(task_id)
        for function_name in function_names:
            function_spec = task.get_function(function_name)
            assert function_spec is not None

            semantics = get_function_semantics(task_id, function_name)
            assert callable(semantics.oracle)
            assert callable(semantics.lean_value)
            assert callable(semantics.lean_call)