classCompletionFrontier
final class CompletionFrontier
Orders pending completions by their admissible lower bound and prunes equivalent more expensive states.
Methods§
public function __construct(
private CompletionCosts $costs,
private int $budget,
private bool $minimum = true,
)Binds one bounded search; callers cannot change the queue extraction mode.
Parameters
$costs | CompletionCosts | |
$budget | int | |
$minimum | bool |
Test cases 3
public function take(): ?CompletionStateReturns and removes the least estimated-cost state, or null when no feasible frontier remains.
Returns
Throws
LogicException When the priority queue does not return its configured data payloadTest cases 4
CompletionFrontierTest::testOfferPrunesOverBudgetAndEquivalentMoreExpensiveStatescovers and callsCompletionFrontierTest::testOfferRemembersAlreadyEmittedOutputBeforeErasingTerminalscovers and callsCompletionFrontierTest::testTakeOrdersAffordableCompletionsByEstimatedCostcovers and callsCompletionReductionTest::testReduceKeepsBothIndependentOutputPossibilitiesAndTheirExactCostscalls
Called from 1
public function offer(
list<Symbol> $symbols,
array<string, int> $occurrences,
bool $nonEmpty,
int $spent,
?CompletionState $parent = null,
): voidErases emitted terminals only after remembering whether they discharge the output requirement.
Parameters
$symbols | list<Symbol> | |
$occurrences | array<string, int> | |
$nonEmpty | bool | |
$spent | int | |
$parent | ?CompletionState |
Test cases 3
Called from 5
- method-call SqlFaker\Generation\Derivation\CompletionReduction::reduce() packages/sql-faker/src/Generation/Derivation/CompletionReduction.php:42
- method-call SqlFaker\Generation\Derivation\CompletionReduction::reduce() packages/sql-faker/src/Generation/Derivation/CompletionReduction.php:46
- method-call SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:89
- method-call SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:101
- method-call SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:113
Calls 8
- method-call CompletionCosts::hasTerminalOutput() line 57
- function-call
array_valuesline 58 - function-call
array_filterline 58 - method-call CompletionCosts::completion() line 59
- new Production line 59
- new CompletionState line 63
- method-call CompletionState::key() line 64
- method-call
SplPriorityQueue::insert()line 70
Private surface 5§
Implementation details, listed for orientation only.
private SplPriorityQueue<array{int, int}, CompletionState> $queueprivate array<string, int> $visited = []private CompletionCosts $costsprivate int $budgetprivate bool $minimum = trueTest cases 23§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 3
Other tests reaching this symbol 20
BytePlanCompilerTestcallsPlanBuilderTestcallsCompletionMemoTestcallsCompletionReductionTest::testReduceKeepsBothIndependentOutputPossibilitiesAndTheirExactCostscallsConstrainedCompletionTestcallsConstraintDependenciesTestcallsDerivationTestcallsDerivationTraceTestcallsTokenGeneratorTestcallsLexemeSequenceTestcallsCandidateResolverTestcallsSqlGeneratorTestcallsTerminalSequenceTestcallsGenerationContextTestcallsMySqlProviderTestcallsGenerationContextTestcallsPostgreSqlProviderTestcallsSqlGeneratorFactoryTestcallsGenerationContextTestcallsSqliteProviderTestcalls
Relations§
Instantiated in 1
Method calls 6
- method-call SqlFaker\Generation\Derivation\CompletionReduction::reduce() packages/sql-faker/src/Generation/Derivation/CompletionReduction.php:42
- method-call SqlFaker\Generation\Derivation\CompletionReduction::reduce() packages/sql-faker/src/Generation/Derivation/CompletionReduction.php:46
- method-call SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:89
- method-call SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:90
- method-call SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:101
- method-call SqlFaker\Generation\Derivation\ConstrainedCompletion::search() packages/sql-faker/src/Generation/Derivation/ConstrainedCompletion.php:113