@syntest/search
Version:
The common core of the SynTest Framework
33 lines • 1.36 kB
TypeScript
import { Logger } from "@syntest/logging";
import { Encoding } from "../Encoding";
import { ExecutionResult } from "../ExecutionResult";
import { SearchSubject } from "../SearchSubject";
import { ControlFlowBasedObjectiveFunction } from "./ControlFlowBasedObjectiveFunction";
import { ApproachLevel } from "./heuristics/ApproachLevel";
import { BranchDistance } from "./heuristics/BranchDistance";
/**
* Objective function for the branch criterion.
*
* @author Mitchell Olsthoorn
* @author Annibale Panichella
* @author Dimitri Stallenberg
*/
export declare class BranchObjectiveFunction<T extends Encoding> extends ControlFlowBasedObjectiveFunction<T> {
protected static LOGGER: Logger;
constructor(approachLevel: ApproachLevel, branchDistance: BranchDistance, subject: SearchSubject<T>, id: string);
/**
* Calculating the distance for a single encoding
*
* This returns a number structured as follows: XX.YYZZZZ
* Where:
* - XX is the approach level
* - YY is the fraction of uncovered statements within the block
* - ZZZZ is the branch distance from the objective
*
* @param encoding
* @returns
*/
calculateDistance(encoding: T): number;
protected _calculateControlFlowDistance(executionResult: ExecutionResult): number;
}
//# sourceMappingURL=BranchObjectiveFunction.d.ts.map