import { TableDecision } from '../TableDecision.js'; import { ValidateTestcaseModel } from './validateModelInterface.js'; /** * Combines the existing test cases to simplify identifying unresolved ones. * * This function compares each field of every pair of test cases in the table. * If two test cases differ in exactly one field and the differing field's values * are bitwise disjunct (i.e. they share no common bits), they can be merged. * Merging is performed by applying a bitwise OR to the differing field in the master test case, * and marking the other test case as skipped. The process repeats in rounds until no further * combinations are possible. * * @param table - The decision table model containing the test cases. * @returns The combined test case model as an array of ValidateTestcaseModel objects. */ export declare function combineTestcases(table: TableDecision): ValidateTestcaseModel[]; /** * Checks if two values (or arrays of values) are bitwise disjunct. * * For arrays, it performs an element-wise bitwise AND and sums the results. * For numbers, it directly computes the bitwise AND. * A result of zero indicates that the values have no overlapping bits. * * @param val1 - The first value or array of numbers. * @param val2 - The second value or array of numbers. * @returns True if the values are disjunct, otherwise false. * @throws Error if one parameter is an array and the other is not. */ export declare function combineTestcasesIsDisjunct(val1: number | number[], val2: number | number[]): boolean; /** * Attempts to combine two test cases if they differ in exactly one field, * and if that field's values are bitwise disjunct. * * The function iterates over the fields in the test case data. If it finds exactly one * field where the values differ, it verifies that the differing values are disjunct. * If so, it merges the field values by applying a bitwise OR and marks the second test case * as skipped (merging it into the first). If more than one field differs, or if the differing * field values are not disjunct, combination is not possible. * * @param tc1 - The master test case which will absorb the combination. * @param tc2 - The test case to be merged into tc1. * @returns True if the test cases were successfully combined; otherwise, false. * @throws Error if any required field value is undefined. */ export declare function combineTestcasesSub(tc1: ValidateTestcaseModel, tc2: ValidateTestcaseModel): boolean; //# sourceMappingURL=combineTestcases.d.ts.map