judgevet.domain.policy_comparisons

Status: draft.

judgevet.domain.policy_comparisons

Shared pure predicates for typed policies and the legacy CLI bridge.

Examples:

from judgevet.domain.policy_comparisons import range_report
from judgevet.policy import NoulRule

report = range_report(NoulRule("q", 0.5), 0.5, "noul", None)
assert report[0]
See Also

RangePredicate

Bases: Protocol

Read-only fields needed by inclusive range comparisons.

Attributes:

Name Type Description
name str

Question name.

minimum float | None

Inclusive lower bound.

maximum float | None

Inclusive upper bound.

Examples:

from judgevet.policy import NoulRule

rule: RangePredicate = NoulRule("q", 0.5)
assert rule.name == "q"

maximum property

Return the inclusive upper bound.

Returns:

Type Description
float | None

The bound, or None.

minimum property

Return the inclusive lower bound.

Returns:

Type Description
float | None

The bound, or None.

name property

Return the question name.

Returns:

Type Description
str

The question name.

choice_report(name, expected, observed, confidence)

Compute exact choice equality and optional confidence conjunction.

Parameters:

Name Type Description Default
name str

Question name.

required
expected str | None

Required choice label.

required
observed str

Observed choice label.

required
confidence tuple[float, float] | None

Observed confidence and minimum, or None.

required

Returns:

Type Description
tuple[bool, str]

Complete comparison detail and predicate outcome.

range_report(rule, value, label, confidence)

Compute inclusive range predicates and optional confidence conjunction.

Parameters:

Name Type Description Default
rule RangePredicate

Validated bounds or historical CLI rule fields.

required
value float

Selected answer scalar.

required
label str

Fixed predicate name.

required
confidence tuple[float, float] | None

Observed confidence and minimum, or None.

required

Returns:

Type Description
tuple[bool, str]

Complete comparison detail and predicate outcome.