fauton
Version:
A library to test any finite automaton with arbitrary alphabets
39 lines (38 loc) • 1.67 kB
TypeScript
/// <reference types="node" />
import fs from 'fs';
import { FiniteAutomatonTestInfo, InputStringOption, IOutputFiles } from '../../types';
import { FiniteAutomaton } from '../FiniteAutomaton';
import { RegularExpression } from '../RegularExpression';
import * as FiniteAutomataTestUtils from './utils';
export declare type IAutomataTestConfig = {
automaton: FiniteAutomaton;
regex?: RegularExpression;
options: InputStringOption;
} | {
automaton?: FiniteAutomaton;
regex: RegularExpression;
options: InputStringOption;
};
declare type IWriteStreams = Record<`${keyof IOutputFiles}WriteStream`, null | fs.WriteStream>;
export declare class FiniteAutomataTest {
#private;
constructor(logsPath: string);
createFileWriteStreams(automatonLabel: string, outputFiles: Partial<IOutputFiles>): {
record: {
caseWriteStream: fs.WriteStream | null;
incorrectWriteStream: fs.WriteStream | null;
correctWriteStream: fs.WriteStream | null;
inputWriteStream: fs.WriteStream | null;
aggregateWriteStream: fs.WriteStream | null;
acceptedWriteStream: fs.WriteStream | null;
rejectedWriteStream: fs.WriteStream | null;
};
endStreams(): void;
};
testAutomata(finiteAutomaton: FiniteAutomaton | RegularExpression, finiteAutomatonTestInfo: FiniteAutomatonTestInfo, writeStreams: IWriteStreams, inputStrings: string[]): void;
test(configs: {
automaton: FiniteAutomaton | RegularExpression;
options: InputStringOption;
}[]): Promise<void>;
}
export { FiniteAutomataTestUtils };