File size: 1,330 Bytes
2e818da
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
from app.schemas.visual_lesson import EvidenceClaim, EvidenceSource


class ArrayAlgorithmEvidenceResolver:
    async def resolve(self) -> tuple[list[EvidenceSource], list[EvidenceClaim]]:
        source = EvidenceSource(source_id="builtin:clrs-sorting-search", origin="builtin", title="Introduction to Algorithms — Sorting and Searching", excerpt="Canonical reference metadata for comparison sorting, partitioning, merging, linear search, and binary search.", authority="canonical")
        claims = [
            EvidenceClaim(claim_id="array-sorting", text="A correct sorting algorithm returns the input values in nondecreasing order while preserving every input occurrence.", claim_type="standard_definition", support_level="canonical", source_ids=[source.source_id]),
            EvidenceClaim(claim_id="array-search", text="Linear search examines candidates sequentially; binary search repeatedly halves a sorted search interval.", claim_type="standard_definition", support_level="canonical", source_ids=[source.source_id]),
            EvidenceClaim(claim_id="array-binary-precondition", text="Binary search requires the array to be sorted under the same ordering used by the search.", claim_type="standard_definition", support_level="canonical", source_ids=[source.source_id]),
        ]
        return [source], claims